我在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
答案 0 :(得分:1)
所以您有一个名为
的元素 properties.getdownload-webapp.version
制作一个名为
的文件 src/main/resources/project.properties
...在您的Maven目录中,并添加以下行:
version=${properties.getdownload-webapp.version}
“。”内部标签的名称可能会在此处引起问题。如果此方法不起作用,请尝试将其删除以查看是否有帮助。 (将其更改为getdownload-webapp-version
之类。)
请注意,您还可以添加标志,例如
debug=false
...到此文件。
然后,在您的源代码(MyClassName.java
)中,添加一个类似
Properties props = new Properties();
String version = "unknown";
try ( props.load(MyClassName.class.getClassLoader()
.getResourceAsStream("project.properties"))) {
version = props.getProperty("version");
} catch (IOException ex) {
// exception handling here
}
您可以在project.properties
文件中添加任意数量的变量,并使用此方法加载每个变量。
答案 1 :(得分:0)
我假设你想在代码中找到它来检查一些正确的东西?您可以使用maven中的过滤,它将在源代码中注入值,类似于过滤选项 http://mojo.codehaus.org/templating-maven-plugin/
答案 2 :(得分:0)
该插件是 Maven Super Pom 的一部分,并在 Jar Default Lifecyle 的process-resources
阶段执行。您唯一要做的就是激活filtering。
这将替换所有占位符,例如${my.property}
中任何文件中的src/main/resources
,具有您pom中的相应属性,例如<property><my.property>test</my.property></property>
如何使此属性对Java应用程序可用取决于您-从类路径中读取它即可。
答案 3 :(得分:-1)
String version = project.getProperties().getProperty("getdownload-webapp.version");
项目的类型为MavenProject