首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从maven发行版中排除未修改的(Scm)模块

如何从maven发行版中排除未修改的(Scm)模块
EN

Stack Overflow用户
提问于 2010-12-29 21:53:16
回答 1查看 600关注 0票数 0

我有一个巨大的项目,其中包含大约200个jar,当我准备发布maven准备所有jar时,但肯定有自上次构建以来没有修改过的jar,所以有什么方法可以检查自上次从scm构建以来jar是否被修改过吗?然后把他们排除在外?

我不想单独释放罐子(超过200个)。

例如:我想为parent创建relase,但我不想relase未修改的jar4

代码语言:javascript
复制
-Parent

---------Module1

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

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

---------Module2

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

----------------jar4   
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-29 22:12:52

例如:我想为parent创建relase,但我不想relase尚未修改的jar4

此操作的语法为

代码语言:javascript
复制
mvn -pl Module1,Module2/jar3 <your maven goals here>

(在本例中,您希望构建所有的Module1,并且只构建Module2的jar3 )

现在棘手的部分是如何将参数组装成-pl。我很确定没有办法做到这一点,所以你可能不得不写一个shell脚本(或者Ruby,Groovy,PERL python等脚本)来帮你做到这一点。

基本上,你的脚本必须做的是:

  • 查找给定目录中的所有maven项目目录(包含pom.xml的目录),对它们进行反向排序(最深的路径优先)
  • 查找整个层次结构中所有更改的文件(使用svn、cvs或其他调用)
  • 将每个更改的文件映射到项目之一(通过比较路径),收集列表中所有匹配的项目
  • 现在通过做一些父/子优化来优化列表(如果给定父项的所有子项都存在,则删除子项并添加父项)。重复执行此操作,直到到达剩余列表的根目录,提取相对路径,使用逗号连接它们,并使用-pl参数的该值启动maven进程。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4554687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档