当前位置: 首页 > 知识库问答 >
问题:

关于Maven版本插件

高和通
2023-03-14

我正在尝试使用Maven版本插件将所有子POM升级到父版本,并在父POM中执行所有子模块的构建。Pom文件如下所示

<project>
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.build.pom</groupId>
    <artifactId>basepom</artifactId>
    <version>1.0</version>
    <packaging>pom</packaging>

    <modules>
        <module>
            <module>../Common</module>
        <module>
    <modules>

    <!-- . . . -->
</project>
<parent>
    <artifactId>basepom</artifactId>
    <groupId>com.build.pom</groupId>
    <version>1.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<groupId>com.child.common</groupId>
<artifactId>common</artifactId>
<packaging>jar</packaging>
<name>Common</name>
<description>Common Jar</description>

现在,如果我使用Eclipse中的命令在基本POM上运行Maven构建

mvn clean install 

子模块正在正确构建,但是如果我将base pom版本更新到2.0并使用版本插件命令

mvn clean -N versions:update-child-modules install

版本正在更新,但子模块尚未构建。只有基本pom得到构建。

我是否必须明确指定在某个阶段构建子模块?我错过了什么?。

共有1个答案

凌嘉勋
2023-03-14

您可以使用如下设置目标,而不是手动设置父级的版本:

versions:set -DnewVersion=XXX -DgenerateBackupPoms=false install

这将更新父级和所有子级的版本,并应在之后执行安装。

编辑:

要将参数和执行移动到pom,请尝试这样的东西(未测试):

  <plugin>
   <artifactId>maven-versions-plugin</artifactId>
   <executions>
    <execution>
     <goals>
      <goal>set</goal>
     </goals>
     <configuration>
       <newVersion>XXX</newVersion>
       <generateBackupPoms>false</generateBackupPoms>
     </configuration>
    </execution>
   </executions>
 </plugin>

(如果版本没有改变,则应忽略设定的目标。)

 类似资料:
  • 所有POM都有作为它们的版本,也在dependencies标签下。它通过上传到Nexus repo。 我们最近开始做。因此,所有20个父POM现在都是和版本,因为它们都位于nexus中。所有标记现在都指向 开发人员不想指向发布版本。他们需要来自同行的edge开发版本,不管它是否不稳定。 SCM只希望指向版本,因为他必须每周执行一次,但由于指向快照版本而失败。 现在我知道了版本插件,但问题是,我应该

  • 我正在阅读有关maven versions插件的内容:http://mojohaus.org/versions-maven-plugin/examples/advanced-dependency-versions.html 对于这个目标:“versions:use-next-releases在pom中搜索所有非快照版本,这些版本已经是一个较新的版本,并用下一个版本替换它们。”

  • 我添加了如下插件: …一切都很顺利。 我将版本更改为2.22.2,并得到错误:。 然而,当我在IntelliJ中进行工件搜索时,它确实会找到该版本。好的,我将更改恢复到原来的版本。 现在,当我运行时,以下内容引起了我的注意: 为什么没有使用3.0.0-M5?2.12.4是从哪里来的?我在我的pom.xml中搜索了“surefire”,但是除了上面显示的之外,没有其他点击出现。 通过查看Intell

  • 我编写了一个没有父级的简单pom.xml来尝试这个方法,因此不涉及pluginManagement。我还检查了maven-model-builder中的super super pom-4.0.0.xml以确认maven-bundle-plugin不存在。此插件版本没有指定在任何地方。 maven如何确定采用哪个版本?

  • 我们在maven发行版和maven版本插件上有一个问题。在詹金斯,我们想做释放自动按下一个按钮。为了消除快照依赖关系,我们希望使用maven versions插件。假设我们有两个项目A(最新版本0.0.1,最新快照0.0.2-快照)和项目B,它们依赖于Projecta-0.0.2-快照,我们希望发布项目B,我们如何将项目Bs依赖项升级到最新可用的发布版本?maven versions插件目标“us

  • 我正在阅读这些文档,仍然不知道Maven是如何决定下载哪些版本的插件的。 例如,考虑以下简单场景: 一个空的本地存储库 默认settings.xml 运行一个简单的maven命令。例如,用于,如Maven在5分钟文档中所述。 运行命令后,Maven做的第一件事就是下载一堆插件。 Maven正在下载的一些插件包括: maven-clean-plugin-2.4.1 maven-install-plu