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

在多个项目中管理Spring Boot父POM版本

秋飞鸾
2023-03-14

我创建了几个Spring Boot项目,每个项目的POM都包括一个spring-boot-starter-parent作为父级。每当一个新版本出来,我目前需要手动更新它在每个POM。

共有1个答案

杜阳泽
2023-03-14

这里有一个你可以尝试的方法。

您的父POM:

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <!-- Do you really need to have this parent? -->
  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.2.7.RELEASE</version>
  </parent>
  <groupId>org.example</groupId>
  <artifactId>my-parent</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Parent POM</name>
  <properties>
    <!-- Change this property to switch Spring Boot version-->
    <spring.boot.version>1.2.7.RELEASE</spring.boot.version> 
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>${spring.boot.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <dependencies>
    <!-- Declare the Spring Boot dependencies you need here 
         Please note that you don't need to declare the version tags.
         That's the whole point of the import above.
    -->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot</artifactId>
      </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-actuator</artifactId>
    </dependency>
    <!-- About 50 in total if you need them all -->
    ...
  </dependencies>
</project>

儿童POM:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.example</groupId>
    <artifactId>my-parent</artifactId>
    <version>1.0-SNAPSHOT</version>
  </parent>
  <artifactId>my-child</artifactId>
  <name>Child POM</name>
</project>
 类似资料:
  • 我有一个多普姆专家项目。在我的pom根中,我有一个父pom和依赖管理,具有Spring依赖关系。 在我的人工战争中,我有这个pom。xml: 我的问题是,在父pom中有一个spring旧版本(4.1.8),在我的根pom中,我使用4.3.3版本和工件spring框架bom。在“我的依赖项列表”中,项目显示为“父项”pom版本。如何优先考虑pom根的依赖关系?

  • 问题内容: 指定多模块Maven项目的版本的最佳实践是什么? 我希望所有模块都有一个版本字符串。即使我在根父pom中只能有一个版本定义,我也需要在每个pom中指定父pom版本。这意味着,如果需要更改版本,则需要更改所有pom。几乎达不到目的。有任何想法吗?? 问题答案: 您是否尝试过versions-maven插件? 这样您就可以在所有基础maven项目中设置给定的版本。 之后,您必须执行删除临时

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

  • 我们有一个Maven多模块项目,其中有大约30个子项目/模块。 使用这两个依赖项的所有子项目。(这只是为了在示例中放一些具体的东西) 因此,我们重构并将这两个依赖项放入父POM。上面的片段现在在父级别。所有子项目仍然可以从中受益,并且只需要在一个地方维护版本,所有人都很高兴。 我们现在有一个适合业务用例的第31个项目,适合这个多模块项目,我们相信把它放在同一个父POM下是有意义的。 然而,第31个

  • 我们的团队有多个项目;大多数项目只是库。为了简单起见,我们假设这些库彼此不依赖,只有一个项目使用它们,例如: 为了避免“Main”中的意外,我们希望确保我们自己的所有项目都使用相同版本的第三方库,例如“Lib-A”和“Lib-B”都是使用相同版本的库X构建和测试的。 为了实现这一点,我们使用带有

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