0

嗨,我需要一些关于 Maven 问题的信息或一般提示。

背景:我们刚刚将一个大的 eclipse 项目迁移到 4 个 maven 项目中。(这是朝着好的方向迈出的一步!)我们正在使用 ant 脚本(build.xml)构建那个/那些项目我们正在选择“按需”执行的任务

为了简单起见,这里有 4 个项目:Core、Client、Server、Admin。这些 Maven 项目中的每一个都构建到一个 jar 中。这已经建立并且运行良好。核心是对客户端和服务器的依赖。

我们在远程服务器上使用 Jenkins-CI 和 Artifactory。

问题:我需要创建某种“父项目”来构建所有其他 maven 项目,并“按需”添加一些我们使用 ant 脚本执行的任务。示例:我们想为我们的开发人员在本地构建(所以我们不使用 jenkins 和 artifactory),以便他们可以手动测试他们的更新(是的,我们现在没有测试,我们正在使用遗留系统)。在这个构建中,我们不想混淆代码或签署我们的 jar..etc 我们还想要一个“客户构建”(我们在服务器上推送的真正版本,所以它确实使用了 jenkins 和 artifactory)这将添加一些对 4 个项目中的一些项目的任务,例如混淆代码、签署 jar ..etc 对于这个“客户构建”,我们需要能够“即时”选择我们对库的依赖,或者更像是“按需” ”。我们的程序是对另一个软件的扩展,我们所有的客户都不使用相同的版本。为了简单起见,库“y”可以是 y-2.0.1.jar 或 y-2.0.2.jar.. 等等我需要的所有这些“任务”都可以在不同的 maven-plugin 中完成,没有问题。

问题:解决我的问题的好习惯是什么。我们真的很想摆脱我们的 ant 脚本。此外,我们正在清理一个又大又脏的项目,所以我想要一个干净的解决方案,每次我们想为我们的客户在本地或远程服务器上构建时,没有大量重复的东西或大量的手动任务。

想法:虽然我可以在所有这 4 个项目中使用不同的 maven 配置文件,正如我在那里看到的那样: Ant to Maven - multiple build targets但是每个项目我都会有一个非常巨大的 pom.xml,里面有很多重复的东西,所以我真的不不喜欢这个主意。我虽然我们可以有一个父 maven 项目,但这将不包含任何代码,所以我认为我也对这个想法有误。

感谢您的回答和您的时间!

4

1 回答 1

2

对于这种自定义,使用Maven 配置文件是正确的做法。然后你可能会有 developerProfile 和 releaseProfile 之类的。是的,你的绒球会很大很复杂。看起来您对 Maven 可以提供的开箱即用功能的要求有点高,而且它不是进行高度定制化构建的最佳工具。由于(据我了解)您的新构建基础设施还处于早期阶段,因此我建议您查看Gradle。您可以重用您的 ant 任务,并且 Jenkins-CI 和 Artifactory 都可以很好地与 Gradle 配合使用。

于 2012-05-28T09:58:25.653 回答