0

我有一个文件,我想在上面显示版本。例如,如果我的 POM.xml 在版本 1.1-SNAPSHOT 上,我喜欢这个文件还包括 1.1-SNAPSHOT 在它的顶部(或靠近顶部的地方)。当我发布时,我希望版本更改为 1.1(即与 POM.xml 相同)。我可以在每次 Maven 构建之前和之后编写一个 bash 脚本来执行此操作,但我想知道 Maven 是否可以这样做。

我看到 buildnumber Maven 插件可能会做类似的事情(例如,将内部版本号放在 jar 文件的清单中)。但是 Maven 可以将“版本”放入我指定的“特定文件”中吗?

4

1 回答 1

0

您需要使用 maven-resources-plugin 进行过滤。考虑以下内容,而不是将其放入文件中,这使其可用于您的代码。

您需要将 .properties 文件放入 src/main/resources,然后启用过滤。

以下是一些测试的示例:

在 pom 中:

    <build>
    <testResources>
        <testResource>
            <directory>src/test/resources</directory>
            <filtering>true</filtering>
        </testResource>
    </testResources>

在 src/test/resources 中,有一个文件 test-config.properties:

project.version=${project.version}

然后是从类路径打开文件并将其输入“属性”类的常用 Java 代码。

 public static void beforeClass() throws Exception {
    URL configPropUrl = Resources.getResource(AbstractIT.class, "test-config.properties");
    Properties props = new Properties();
    try (InputStream propStream = configPropUrl.openStream()) {
        props.load(propStream);
    }

    basedir = props.getProperty("basedir");
    projectVersion = props.getProperty("project.version");

}
于 2015-11-11T19:36:52.497 回答