[英]how to get property value from pom.xml?
我在pom.xml中添加了一个节点:
<properties>
<getdownload-webapp.version>1.5</getdownload-webapp.version>
</properties>
我怎么能在代码中得到这个1.5值?
String version = System.getProperty("getdownload-webapp.version"); // output version = null
这段代码在运行时给了我null(
ps:此项目中没有settings.xml
所以你有一个这样的财产。
<properties>
<getdownload-webapp.version>1.5</getdownload-webapp.version>
</properties>
在您的Maven项目中创建一个文件,如下所示。
src/main/resources/project.properties
如果仅用于测试,则如下所示。
src/test/resources/project.properties
将此行添加到新文件中。 请注意,您不应以“ properties”作为前缀(例如,不要写“ properties.getdownload-webapp.version”)。
version=${getdownload-webapp.version}
请注意,您也可以在文件中添加这样的标志。
debug=false
如果尚未完成,则必须为项目启用Maven筛选。 此功能将查找项目文件中的占位符,以将其替换为pom中的值。 为了继续,您需要在pom.xml文件的<build>
标记内添加这些行。 这是使用src / main的方法:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
...
这是src / test的操作方法:
<build>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
</testResources>
...
最后,在您的源代码( MyClassName.java
)中,添加一个代码块,例如
Properties props = new Properties();
props.load(MyClassName.class.getClassLoader().getResourceAsStream("project.properties"));
String version = props.getProperty("version");
您可以在project.properties
文件中添加任意数量的变量,并使用此方法加载每个变量。
我假设您想在代码中获取它以检查是否正确? 您可以使用来自maven的过滤,该过滤将在源代码中注入值,类似于过滤选项http://mojo.codehaus.org/templating-maven-plugin/
String version = project.getProperties().getProperty("getdownload-webapp.version");
项目是MavenProject类型的
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.