首页 > 解决方案 > 有什么方法可以从类路径依赖 jar 中的 pom.xml 获取 maven 项目版本

问题描述

我们有一个健康实用程序 jar,它作为 maven 依赖项添加到另一个项目 A 中。我们想从健康实用程序 jar 中获取项目 A 的 maven 版本。有人可以建议如何获得它吗?

标签: javaspring-bootmavenpom.xml

解决方案


对于这种情况最简单(对于少数属性):

将属性“过滤”到(弹簧使用的)属性文件中。

pom.xml

...
   <parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>2.5.6</version>
     <relativePath /> <!-- lookup parent from repository -->
   </parent>
   ...
   <version>1.2.3.SNAPSHOT</version>
...

这将 maven 配置为从(请参阅此处此处此处)过滤所有.yaml,.yml.properties文件。src/main/resources/

然后在 src/main/resources/application.properties中,您将:

my.domain.maven.project.version=${project.version} 
# a key of your choice, but the value *has to be* 
# ${project.version} or @project.version@

在构建(涉及process-ressources阶段(例如mvn clean process-classes))上,这将(应该)被“过滤”到${project.buildDir}(通常是目标/类)/application.properties:

my.domain.maven.project.version=1.2.3.SNAPSHOT

然后可以使用:

@SpringBootApplication // @Configuration/@Component/Bean-like/@...
public class MyApp {

    @Value("${my.domain.maven.project.version}")
    private String mavenProjectVersion;
    // do something with it
}

但当然有许多不同的解决方案/方法,例如:


推荐阅读