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

Maven:引用父pom时重用单个版本定义

端木存
2023-03-14

我有许多子POM(50个项目),要求我更新每个版本上的所有POM,例如,当从1.0移动到1.1时。

如何在一个地方定义版本,并在所有POM中重用它?

编辑-关于请求的一些动机:我希望在切换版本时尽可能少的占用。作为要更改的小文件。因为几乎没有人promise推动。等。

编辑-在加载父属性之前不能使用父属性。

<parent>
    <groupId>info.fastpace</groupId>
    <artifactId>parent</artifactId>
    <version>1.0-SNAPSHOT</version>
</parent>

<artifactId>child-1</artifactId>

共有1个答案

贝杜吟
2023-03-14

我可以使用parent的属性,并使用相对路径而不是版本来引用parent。示例:

家长:

<groupId>info.fastpace</groupId>
<artifactId>parent</artifactId>
<version>${global.version}</version>

<properties>
   <!-- Unique entry point for version number management --> 
   <global.version>1.0-SNAPSHOT</global.version>
</properties>

孩子:

<parent>
    <groupId>info.fastpace</groupId>
    <artifactId>parent</artifactId>
    <version>${global.version}</version>
    <relativePath>..</relativePath>
</parent>

<artifactId>child-1</artifactId>
 类似资料:
  • 当我使用mvn install构建工件时,我看到JAR在我的.m2文件夹中构建,但是Project.version没有替换为实际版本,即1.0-Snapshot。 > 每个工件的.m2存储库中的父pom和/或子pom是否具有指定的版本,或者是否为Project.version 我是否应该在父POM中指定Project.Version作为属性。maven文档说明Project.version可由De

  • 使用可以用于基于的遗留用例,但也可以测试我们正在迁移的未来用例:。 我是否可以在每次修改POM时实现以下反应器构建?或者,类似的东西?或者,Maven仅仅是这个用例的错误工具吗? 理想情况下,我希望在一个反应器构建中实现所有功能,每个编译并与每个继承的依赖项一起使用。我知道这会使我的Maven repo处于不希望的状态,但至少我可以将反应器构建插入到我的CI,并确保我的构建在依赖平台上运行。 注意

  • 问题内容: 我使用的父POM定义了我不想在子POM中运行的插件。如何完全禁用子pom中的插件? 约束:我不能更改父POM本身。 问题答案: 在禁用子POM中的Findbugs时,以下对我有用: 注意:Findbugs插件的完整定义在我们的父/超级POM中,因此它将继承该版本等。 在Maven 3中,您需要使用: 用于插件。

  • 问题内容: 我有很多类似的项目: 在jar中编译的每个项目:project-1.1.1.1.jar,....是否可以在父文件夹中添加pom.xml,以便为所有项目定义版本1时间? 问题答案: 如果省略,则从父级继承。但是,该元素必须包含一个用于父元素的元素,因此该版本必须出现在每个单个POM中,但只能出现一次。

  • 我有一个父级pom a和子级pom B、C和D。在B、C和D中,我有相同类型的依赖关系。 ie母Pom

  • 我希望所有子模块都继承父版本号,但子模块要求我继续对父版本号进行硬编码(ModuleA pom.xml示例): 如何将版本号放在父pom中,并让模块继承它,而不必在多个地方更新它呢?到目前为止,我已经尝试了${project.version}和${project.parent.version},但Maven似乎对此很不满意。也不能完全删除版本引用。 有人对此有很好的答案吗?