Java 如何从pom.xml获取属性值?
我在pom.xml中添加了一个节点:Java 如何从pom.xml获取属性值?,java,maven,Java,Maven,我在pom.xml中添加了一个节点: <properties> <getdownload-webapp.version>1.5</getdownload-webapp.version> </properties> 此代码在运行时为null( ps:此项目中没有settings.xml我假设您希望在代码中使用它来检查是否正确?您可以使用maven中的筛选,它将在源代码中注入值,类似于筛选选项 其中project的类型为MavenP
<properties>
<getdownload-webapp.version>1.5</getdownload-webapp.version>
</properties>
此代码在运行时为null(
ps:此项目中没有settings.xml我假设您希望在代码中使用它来检查是否正确?您可以使用maven中的筛选,它将在源代码中注入值,类似于筛选选项
其中project的类型为MavenProject,因此您有这样一个属性
<properties>
<getdownload-webapp.version>1.5</getdownload-webapp.version>
</properties>
如果仅用于测试,则如下所示
src/test/resources/project.properties
在新文件中添加这一行。请注意,您不应以“属性”作为前缀(例如,不要写“properties.getdownload webapp.version”)
请注意,您还可以向文件中添加类似的标志
debug=false
如果尚未完成,则必须为项目启用Maven筛选。该功能将查找项目文件中的占位符,并将其替换为pom中的值。要继续,需要在pom.xml文件的
标记中添加以下行。这是使用src/main的方法:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
...
您可以向
项目.properties
文件中添加任意数量的变量,并使用此方法加载每个变量。主要负责将Maven属性传输到Java应用程序的机制由
该插件是Maven Super Pom的一部分,在Jar默认生命周期的过程资源
阶段执行
这将用pom中的相应属性替换src/main/resources
中任何文件中的任何占位符,例如${my.property}
,例如test
如何使该属性可供Java应用程序使用取决于您-从类路径读取该属性将起作用。或者,maven resources插件可以通过maven property筛选资源。我无法调用filter,所有逻辑仅在Java方法中-也许有一种使用资源的方法-但如何在运行时读取它们的值来自上面链接的e模板插件可以为您修改java文件。您可以执行类似字符串版本=${getdownload webapp.version}然后在你的逻辑中使用版本变量。我不仅需要版本,还需要一些其他字符串值。购买你建议的插件的预发布方式如果你将pom打包到META-INF,maven通常会自动完成,你应该能够从那里读取它。这不是JVM属性,这与M中的变量类似aven:我可以将属性更改为资源或变量,但如何从java代码中访问它们呢?请参阅这里:[我已经完成了jetty的操作,并且再次得到了空结果
src/test/resources/project.properties
version=${getdownload-webapp.version}
debug=false
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
...
<build>
<testResources>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
</testResource>
</testResources>
...
Properties props = new Properties();
props.load(MyClassName.class.getClassLoader().getResourceAsStream("project.properties"));
String version = props.getProperty("version");