中等/硬构建逻辑。Maven way还是ant run插件?
我有一个多模块maven项目,它必须产生两个组件-测试和生产,不同的许可证信息。我想:中等/硬构建逻辑。Maven way还是ant run插件?,maven,Maven,我有一个多模块maven项目,它必须产生两个组件-测试和生产,不同的许可证信息。我想: 1) build module A. 2) invoke compiled classes of A and replace placeholders in sources of module B. 3) in final assembly invoke classes of B to calculate custom hash of entire build. 4) make build once more
1) build module A.
2) invoke compiled classes of A and replace placeholders in sources of module B.
3) in final assembly invoke classes of B to calculate custom hash of entire build.
4) make build once more time, but with another replace value in step 2.
如何做得更好?使用一些maven-way逻辑或ant-run插件?最好只有一个“mvn包”调用,才能使其在IDE中工作。您的问题是一个独特的问题,您需要根据测试或生产配置文件生成两种不同类型的工件。对于你的情况,我建议
所以,现在如果您只运行一次mvn包,它将同时针对概要文件、测试和生产运行。仔细想想,但最简单的解决方案是使用不同的参数进行两次构建。一次构建的所有解决方案都太复杂了。也许以后我会明白更好的方法。自定义ant逻辑完全适合带有maven antrun插件的maven项目。尝试用原生mavenplugins实现它是个坏主意。声明性只适用于标准程序。试一试如何使用Maven实现这一点,最后是单个
mvn包
call。非常感谢!您还可以建议使用哪些插件来替换源代码中的占位符并调用已编译的类吗?您可以使用maven assembly插件或maven ant插件实现任何开箱即用的逻辑。您不能清楚地理解您的答案。C-test和C-prod中必须包含哪些内容?我在B的*.java文件中有许可证密钥占位符。在构建过程中,我想将其更改为test value并生成*test.zip。然后我想把它改为real value并生成*real.zip。我能做到没有代码重复吗?做这类事情最常见的方法是什么?好吧,根据测试或生产环境的不同,逻辑是否应该在C-test/prod项目中。