maven-2 - 如何使用版本 Maven 插件更新依赖同级模块的版本

标签 maven-2

我在更新依赖同级项目的依赖版本时遇到问题。

我的简化项目设置如下。

root
|--parent
|--tool-core
|--tool
|--functional-tests

父项目拥有所有全局属性和依赖管理。功能测试取决于工具,而工具又取决于工具核心。根pom.xml仅聚合(指定是否包含功能测试),父项目是所有项目的父项目。我不知道这是否微不足道,但父项目并未包含在聚合中,因为它已经是每个子项目的父项目。

现在,我的问题是如果我用 versions:set 更改工具版本。工具版本已更改,但对该工具的任何依赖项均未更改。我该怎么做?我已经或多或少地随机尝试过其他目标,并且我确实尝试阅读手册。

我已经尝试过使用 <dependencyManagement>部分并在父级中使用版本的属性,但这些不会更新到新版本。

非常感谢任何帮助。

添加

我最多收到一条消息“忽略 react 器依赖:com.tool:tool:jar:null:1.2.3”。这是我尝试versions:use-latest-releases的时候。然而,versions:display-dependency-updates确实表明“本地依赖项”有更新(功能测试取决于工具)。

更新

Maven 似乎会从存储库中查找新版本,包括本地版本,现在我想起来这似乎很明显。但是,这意味着在更新依赖项之前必须构建该工具并将其安装到本地存储库。

我只是想知道这是否是将集成测试作为自己的项目的正确方法。我希望有一种方法可以立即更新版本。

更新

基本上我有以下设置。版本依赖functional-tests tool的由 parent 定义项目。我省略了tool-core因为它可以作为 tool 的一部分进行处理.

根:

<groupId>com.somecompany</groupId>
<artifactId>x-reactor</artifactId>
<packaging>pom</packaging>
<version>1.0</version>

<profiles>
    <profile>
        <id>cli</id>
        <modules>
            <module>tool</module>
        </modules>
    </profile>
    <profile>
        <id>deploy</id>
        <modules>
            <module>tool</module>
            <module>functional-tests</module>
        </modules>
    </profile>
</profiles>

父级:

<groupId>com.somecompany</groupId>
<artifactId>x-parent</artifactId>
<packaging>pom</packaging>
<version>1.0</version>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.somecompany</groupId>
            <artifactId>tool</artifactId>
            <version>3.2.3</version>
        </dependency>
    </dependencies>
</dependencyManagement>

工具:

<parent>
    <groupId>com.somecompany</groupId>
    <artifactId>x-parent</artifactId>
    <version>1.0</version>
    <relativePath>../parent/pom.xml</relativePath>
</parent>

<groupId>com.somecompany</groupId>
<artifactId>tool</artifactId>
<packaging>jar</packaging>
<version>3.2.3</version>

功能测试:

<parent>
    <groupId>com.somecompany</groupId>
    <artifactId>x-parent</artifactId>
    <version>1.0</version>
    <relativePath>../parent/pom.xml</relativePath>
</parent>

<groupId>functional-tests</groupId>
<artifactId>functional-tests</artifactId>
<version>0.1</version>
<packaging>pom</packaging>

<dependencies>
    <dependency>
        <groupId>com.somecompany</groupId>
        <artifactId>tool</artifactId>
    </dependency>
</dependencies>

最佳答案

我目前在“use-releases”目标中遇到了同样的问题,并且很高兴版本插件(刚才?)通过参数“excludeReactor=false”! :-)

关于maven-2 - 如何使用版本 Maven 插件更新依赖同级模块的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3606408/

相关文章:

maven-2 - Maven 快速入门指南

java - 为什么这在 Maven 下编译正常,但在 Eclipse 中给我错误?

Maven WAR 依赖

java - 文本 Web 资源的 Maven 字符串替换

java - 如何访问 Maven 项目中的 XML 文件以使其在打包时保持可用

java - 使用 Eclipse 风格的 Maven2 组织导入?

maven-2 - 当打包( war )许多模块时(Maven),将两个或多个 persistence.xml 合并为一个

java - 使用 rpm-maven-plugin 的多模块 Web 应用程序示例?

java - 运行 Maven2 构建时使用不同的 Java 源版本

maven - 如何从不知道要卸载的 Artifact 的名称或组 ID 的脚本执行 mvn install 的相反操作?