首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将pom.xml打包到JAR时替换变量

将pom.xml打包到JAR时替换变量
EN

Stack Overflow用户
提问于 2018-08-08 22:29:49
回答 1查看 1K关注 0票数 1

我有一个包含多个模块的Java Maven项目。从各个模块引用父模块时,会将以下信息添加到项目A\module-sample-app\pom.xml

代码语言:javascript
复制
   <groupId>org.apache.maven</groupId>
   <artifactId>module-sample-app</artifactId>
   <packaging>jar</packaging>
   <name>module-sample-app</name>
   <parent>
      <groupId>org.apache.maven</groupId>
      <artifactId>sample-app-parent</artifactId>
      <version>1.0-${buildLifeId}</version>
    </parent>

父应用程序AA\pom.xml中具有以下条目

代码语言:javascript
复制
   <artifactId>A</artifactId>
   <packaging>jar</packaging>
   <name>A</name>
   <version>1.0-${buildLifeId}</version>

要运行构建,请在项目A的父目录上执行以下命令

示例:mvn clean install -DbuildLifeId=1001

生成的JAR文件具有一个嵌入的pom.xml,其中包含字符串${buildLifeId},而不是值1001

当尝试在另一个应用程序B中的模块sample-app上使用时,由于运行时变量未替换为实际值,因此无法获取依赖项。我要强调的是,B不是A的一个模块。

B\pom.xml

代码语言:javascript
复制
<dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>module-sample-app</artifactId>
    <version>1.0-1001</version>
</dependency>

使用此依赖项时,由于嵌入在module-sample-app-1.0-1001.jar中的pom.xml会将父版本定义为<version>1.0-${buildLifeId}</version>,因此无法加载依赖项。

所以我的问题是--在将pom.xml打包到JAR之前,Maven是否支持一个可以替换运行时变量的插件?或者是否有解决方法。在构建JAR时,我可以使用Ant插件将version节点中的buildLiefeId变量替换为实际值吗?

EN

回答 1

Stack Overflow用户

发布于 2019-05-16 07:09:18

我已经在使用${revision}了--我只需要在父pom和子pom中使用Maven插件来解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51749242

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档