我有巨大的项目包含大约200罐,当我准备发行版Maven为所有罐子准备时?排除他们?

我不想单独重新介绍罐子(超过200个)。

例如:我想为父母重新介绍,但我不想重新介绍尚未修改的jar4

-Parent

---------Module1

----------------jar1*

----------------jar2*

---------Module2

----------------jar3*

----------------jar4   
有帮助吗?

解决方案

例如:我想为父母重新介绍,但我不想重新介绍尚未修改的jar4

语法是

mvn -pl Module1,Module2/jar3 <your maven goals here>

(在这种情况下,您要构建所有模块1和jar3的模块2)

现在,棘手的部分是如何将参数组装到-pl。我很确定没有Maven的方法可以做到这一点,因此您可能必须编写一个为您完成的Shell脚本(或Ruby,Groovy,Perl Python等)。

基本上,您的脚本必须做什么:

  • 查找给定目录中的所有Maven项目目录(包含pom.xml的目录)
  • 在整个层次结构中查找所有更改的文件(使用SVN,CVS或任何调用)
  • 将每个更改的文件映射到其中一个项目(通过比较路径),收集列表中的所有匹配项目
  • 现在,通过进行一些父/子女优化(如果存在给定父母的所有孩子,请删除孩子并添加父母)来优化列表。重复执行此操作,直到到达根部层次结构为止。
  • 从剩余列表中,提取相对路径,与逗号一起加入它们,然后使用该值来开始您的Maven过程 -pl 范围。
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top