【问题标题】:How do I set the version info in a manifest file when building a netbeans project with jenkins?使用 jenkins 构建 netbeans 项目时,如何在清单文件中设置版本信息?
【发布时间】:2026-01-29 02:25:01
【问题描述】:

我有一个使用netbeans IDE构建的项目(如果我没记错的话内部使用Ant构建)

我们使用的 CI 服务器是 jenkins。我想将版本信息添加到生成的 jar 的清单中。

我该怎么做?

【问题讨论】:

  • 请看一下。我使用环境变量添加了另一个示例。

标签: java jenkins jar manifest.mf


【解决方案1】:

假设您的 Jenkins 构建过程以某种方式更新了项目版本,一个可能的解决方案是:

nbproject\build-impl.xml 中为清单添加一个条目

<target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" ...
    <manifest file="${tmp.manifest.file}" mode="update">
        <attribute name="Main-Class" value="${main.class}"/>
        <!-- add this line below -->
        <attribute name="Project-Version" value="${project.version}"/>
    </manifest>
</target>

nbproject\project.properties添加项目版本

project.version=0.0.1-SNAPSHOT

构建

ant jar

输出

$ unzip -p dist/CI-test.jar META-INF/MANIFEST.MF | grep Project
Project-Version: 0.0.1-SNAPSHOT

编辑:另一个使用环境变量的解决方案。

nbproject\build-impl.xml 中使用环境变量PROJECT_VERSION为清单添加一个条目

<target depends="init,-do-jar-create-manifest,-do-jar-copy-manifest" ...
    <!-- enable access to environment variables -->
    <property environment="env"/>
    <manifest file="${tmp.manifest.file}" mode="update">
        <attribute name="Main-Class" value="${main.class}"/>
        <!-- add this line below -->
        <attribute name="Project-Version" value="${env.PROJECT_VERSION}"/>
    </manifest>
</target>

构建

# define the environment variable
# on Windows use: set PROJECT_VERSION=0.0.2-SNAPSHOT
PROJECT_VERSION=0.0.2-SNAPSHOT
ant jar

输出

$ unzip -p dist/CI-test.jar META-INF/MANIFEST.MF | grep Project
Project-Version: 0.0.2-SNAPSHOT

【讨论】:

    最近更新 更多