版本: maven 3.0.4,发布插件 2.4.0
目标是使用 maven 发布插件以非交互方式一步发布多个功能(项目)。我使用:http ://maven.apache.org/maven-release/maven-release-plugin/examples/non-interactive-release.html
SVN结构:
http://host/svn/feature1/trunk | tags | branches
http://host/svn/feature2/trunk | tags | branches
http://host/svn/feature3/trunk | tags | branches
每个功能都有一个 pom.xml,带有特定的版本名称和 scm url 部分。
有了这种结构,我希望一次性发布所有功能(有超过 12 个功能,以及它们之间的依赖关系......)。我在想 maven reactor 插件可能对我有很大帮助,以正确的顺序部署和发布所有内容;-) 然后我在 svn 中创建了一个“构建/组装”项目分支,具有以下 svn 外部:
feature1 http://host/svn/feature1/trunk
feature2 http://host/svn/feature2/trunk
...
使用 svn externals 的目标是拥有一个平坦的工作区(它避免了 maven 发布插件的问题......)。在这个构建项目中,我只有一个 pom.xml,它是所有功能的多项目聚合器。
<modules>
<module>feature1</module>
<module>feature2</module>
<module>feature3</module>
...
</modules>
然后我使用 Maven 发布命令:
mvn -B release:clean release:prepare release:perform
具有以下 release.properties
project.rel.org.sample.test\:feature1=1.0.0-RC1
project.dev.org.sample.test\:feature1=1.0.0-RC2-SNAPSHOT
project.scm.org.sample.test\:feature1.developerConnection=scm\:svn\:http\://host/svn/feature1/trunk
project.scm.org.sample.test\:feature1.connection=scm\:svn\:http\://host/svn/feature1/trunk
project.rel.org.sample.test\:feature2=1.0.0-RC1
project.dev.org.sample.test\:feature2=1.0.0-RC2-SNAPSHOT
...
有了这个文件和 -B 参数,就不需要交互式输入,向用户询问功能版本。因此,可以使用 jenkins 启动该工作:D ...
在这一步:
- scm 提交的更改是好的(scm url 和版本)
- 工件部署良好
- 但是功能 scm 标签不是在 svn 中创建的...
只执行了根构建/组装项目的 scm 标签...
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Reactor Summary:
[INFO] [INFO]
[INFO] [INFO] build ..................................... SUCCESS [1.104s]
[INFO] [INFO] feature1 .................................. SUCCESS [0.187s]
[INFO] [INFO] feature2 .................................. SUCCESS [0.648s]
[INFO] [INFO] feature3 .................................. SUCCESS [0.370s]
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] BUILD SUCCESS
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] [INFO] Total time: 2.552s
[INFO] [INFO] Finished at: Thu Jan 03 14:45:37 CET 2013
[INFO] [INFO] Final Memory: 9M/22M
[INFO] [INFO] ------------------------------------------------------------------------
[INFO] Cleaning up after release...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] build ............................................. SUCCESS [7.201s]
[INFO] feature1 .......................................... SKIPPED
[INFO] feature2 .......................................... SKIPPED
[INFO] feature3 .......................................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
摘要中功能的 SKIPPED 状态似乎很奇怪(但提交和清理阶段是成功的)
这个问题不是很容易解释,我希望清楚......
有人遇到过同样的问题吗?一些技巧/信息来解决这个问题?