首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在JAR文件名中包含一个版本号?

如何在JAR文件名中包含一个版本号?
EN

Stack Overflow用户
提问于 2015-11-27 09:30:36
回答 4查看 1.9K关注 0票数 2

我有一个项目,它是使用Maven程序集插件构建的。

代码语言:javascript
复制
<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
</plugin>

我有一个文件BUILD.txt,它包含当前的版本号。

当我调用mvn assembly:single时,我希望maven-assembly-plugin生成一个名为myproduct-1.0-SNAPSHOT.BUILD.jar的JAR文件(所有依赖项),其中构建是来自BUILD.txt的文本(也就是说,如果BUILD.txt包含172个,则结果JAR应该称为myproduct-1.0-SNAPSHOT.172.jar)。

如何从BUILD.txt读取文本,以便在程序集插件的finalName设置中使用它?

代码语言:javascript
复制
<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <finalName>${project.build.finalName}.${build}.jar</finalName
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
</plugin>
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-11-27 09:38:57

方法1

  • 使用Maven属性插件
  • BUILD.txt更改为包含buildNumber=NNN
  • 将属性${buildNumber}用于<finalName>

方法2

  • 假设您使用像SVN或Git这样的SCM
  • 不用再使用BUILD.txt
  • 使用Maven构建号插件
  • 将属性${buildNumber}用于<finalName>
票数 2
EN

Stack Overflow用户

发布于 2015-11-27 09:39:16

尝尝这个

代码语言:javascript
复制
<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <finalName>${project.build.finalName}.${build}.jar</finalName
        <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
    </configuration>
    <appendAssemblyId>false</appendAssemblyId>
</plugin>

使用appendAssemblyId,您将避免使用jar-with-dependencies后缀。您应该以属性文件的形式生成BUILD.txt,然后以pom.xml中的普通属性文件的形式访问它。

票数 1
EN

Stack Overflow用户

发布于 2015-11-27 09:39:53

你可以这样做:

代码语言:javascript
复制
<build>
  <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>buildnumber-maven-plugin</artifactId>
        ...

将其放入您的pom (构建部分),然后将其配置为访问您的scm。然后定义您的bundleFileName,例如:

代码语言:javascript
复制
<bundleFileName>${project.artifactId}-${project.version}.jar</bundleFileName>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33954231

复制
相关文章

相似问题

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