使用Maven构建我的项目,我可以将该版本包含在特定文件中吗?

时间:2015-11-11 19:32:13

标签: maven buildnumber-maven-plugin

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

我看到buildnumber Maven插件可能会做类似的事情(例如,将构建号放在jar文件的清单中)。但Maven可以把#34;版本"进入"特定文件"我指定的?

1 个答案:

答案 0 :(得分: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");

}