maven - 在多模块 Maven 项目的发布中,未对所有项目执行构建
问题描述
我在发布多模块 Maven 项目期间遇到了构建问题。我有这个结构:
parent
|-- potato
|-- lettuce
|-- raddish
我想发布土豆和生菜项目。(他们不依赖快照萝卜。)
我使用的命令是:
mvn release:prepare -pl potato,lettuce ... (tag, versions and so on) -DpushChanges=false
历史上的每一次提交都如我所料——一次将马铃薯和生菜的版本从 X-SNAPSHOT 更改为 X,一次将 X 更改为 Y-SNAPSHOT。为这两个项目创建了一个标签。
但是,在发布期间有两个构建阶段:prepare——一个在 X 版本上调用 verify,一个在 Y-SNAPSHOT 版本上调用 verify。两个阶段都只构建了第一个项目,而不是第二个项目。(首先在 -pl 参数中指定。)调用 release:perform 时会发生同样的情况。只有第一个项目正在部署,其他一切都被忽略。
准备阶段生成的 release.properties 文件与此类似(注意 exec.pomFileName=potato/pom.xml):
project.scm.release.test\:potato.developerConnection=scm\:git\:http\://localhost\:3000/petr/release-test.git
project.scm.release.test\:lettuce.connection=scm\:git\:http\://localhost\:3000/petr/release-test.git
scm.commentPrefix=[maven-release-plugin]
project.scm.release.test\:potato.connection=scm\:git\:http\://localhost\:3000/petr/release-test.git
exec.pomFileName=potato/pom.xml
pushChanges=false
releaseStrategyId=default
project.scm.release.test\:lettuce.developerConnection=scm\:git\:http\://localhost\:3000/petr/release-test.git
scm.tag=33
project.scm.release.test\:lettuce.tag=HEAD
remoteTagging=true
scm.branchCommitComment=@{prefix} prepare branch @{releaseLabel}
projectVersionPolicyId=default
scm.url=scm\:git\:http\://localhost\:3000/petr/release-test.git
scm.tagNameFormat=@{project.artifactId}-@{project.version}
project.scm.release.test\:lettuce.url=http\://localhost\:3000/petr/release-test.git
pinExternals=false
project.scm.release.test\:potato.tag=HEAD
preparationGoals=clean verify
scm.releaseCommitComment=@{prefix} prepare release @{releaseLabel}
exec.snapshotReleasePluginAllowed=false
exec.additionalArguments=-pl=lettuce,potato
project.rel.release.test\:potato=33
project.rel.release.test\:lettuce=33
project.scm.release.test\:potato.url=http\://localhost\:3000/petr/release-test.git
scm.developmentCommitComment=@{prefix} prepare for next development iteration
scm.rollbackCommitComment=@{prefix} rollback the release of @{releaseLabel}
completedPhase=end-release
有没有办法只使用一个标签和提交来发布两个项目,但同时构建土豆和生菜(但不是萝卜)?
我正在使用发布插件 3.0.0-M1。
解决方案
推荐阅读
- angular - jsPDF Acroforms 在 Angular 应用程序中不起作用
- javascript - 如何将列表中的所有选中项目存储到本地存储中。(Javascript)
- php - 如何在 Select Query 中使用 IF 或 Case 语句?
- java - 使用 JAVA SDK 删除 hive 表的所有分区
- python - 如何计算 csv.writer 写入的行数?
- python - 远程jupyter内核 - 不同的虚拟环境?
- apache-spark - 即使设置了 header=true,架构也不会写入 csv
- r - 为我的贝叶斯预测绘制 95% 的可信区间以及来自响应变量的实际观察值的点
- java - 整数数组的反向拷贝
- r - 使用 mutate 从列值创建列