上下文:
我有一个多模块maven项目,如下所示:
根- ModuleA
ModuleB
ModuleC
ModuleD
.......它们在根下大约有25个模块:
在打包或发布“Root”项目时,生成的工件是一个单独的ZIP文件,该文件聚合了与“根”模块相关的所有JAR。
单个ZIP文件是根据程序集描述符生成的,它表示交付工件。
在目标环境的部署时,将在一个目录下解压缩单个ZIP,该目录由提供最终服务的java web应用程序“engine”使用(类加载)。
约束
由于上述限制,我们采用了以下发布场景:
这两种情况是通过以下因素得以实现的:
问题
在第二个场景(增量)中,maven-release:准备将所有模块(、ModuleB、ModuleD )上传到SCM ( ModuleA,ModuleB,ModuleD),.ModuleX,它在上传发布的模块和未发布的模块,而“非发布模块”在pom中被声明为“依赖”,而不是作为“模块”。
有没有办法避免上传“非发布”模块?有没有办法向SCM svn提供者注入“exlcude定向列表”?
[2]更全面的问题是,所采用的方法是否正确?还是反模式用法?在这种情况下,应该有什么替代办法?
谢谢。
发布于 2013-03-22 12:22:52
在我看来,你的做法就像反模式。我建议只将项目放在您希望一起发布的同一层次结构中。具有不同版本生命周期的项目应该独立存在,否则您将继续遇到您提到的问题。如果从根目录(多模块设置)运行发布插件,则该根目录的所有内容都将在SVN中标记。
在您的例子中,我可能会创建以下层次结构:
我会根据您创建发行版的方式对其进行分组。这可能意味着您必须运行几次发布插件,而不是只运行一次,当你做一个改变,例如在核心,但它将是一个更干净的。
然后,您的打包项目将引入所有依赖项,并打包/组装它们。
如果您有常见的配置选项,我建议将它们放入公共的parent pom中。这不一定是您的根(多模块) pom。
发布于 2013-03-22 16:08:37
您是否尝试过使用-r参数运行maven版本插件+要发布的所有模块的列表?
基本上,这个参数允许您指定应该对其执行maven命令的模块列表。(如果省略它:所有子模块都将包括在内,这是默认行为)
请参阅有关此命令行这里的更多详细信息。
我从不尝试在maven发布插件中使用它,我也不知道它是否会起作用,特别是在SCM操作方面。
https://stackoverflow.com/questions/15570004
复制相似问题