我有一个文件,我想在顶部显示该版本。例如,如果我的POM.xml是版本1.1-SNAPSHOT,我喜欢这个文件还包括它上面的1.1-SNAPSHOT(或接近顶部的某个地方)。当我发布时,我希望版本更改为1.1(即与POM.xml相同)。我可以在每个Maven构建之前和之后编写一个bash脚本来执行此操作,但我想知道Maven是否可以这样做。
我看到buildnumber Maven插件可能会做类似的事情(例如,将构建号放在jar文件的清单中)。但Maven可以把#34;版本"进入"特定文件"我指定的?
答案 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");
}