Java 从Maven依赖项获取属性

Java 从Maven依赖项获取属性,java,maven,maven-plugin,Java,Maven,Maven Plugin,我有两个项目,一个是webapp,一个是jar。两者都是maven中的项目,webapp使用jar作为依赖项。我最近在这两个版本中都实现了buildnumber maven插件,因此现在每个版本都有一个${buildnumber}属性来引用scm修订版 我有一个UI,可以显示这两个版本,并希望显示修订号和版本号。如何从主应用程序的依赖项的pom中获取${buildNumber}属性?我将使用maven写入属性文件,该文件将由servlet或类似的东西读取 我还没有测试过,但这只是个暗示。 首先,

我有两个项目,一个是webapp,一个是jar。两者都是maven中的项目,webapp使用jar作为依赖项。我最近在这两个版本中都实现了buildnumber maven插件,因此现在每个版本都有一个${buildnumber}属性来引用scm修订版


我有一个UI,可以显示这两个版本,并希望显示修订号和版本号。如何从主应用程序的依赖项的pom中获取${buildNumber}属性?

我将使用maven写入属性文件,该文件将由servlet或类似的东西读取

我还没有测试过,但这只是个暗示。 首先,一个属性文件,在我的战争中。 此文件包含:

version = ${project.version} //the value comes from maven
其次,, servlet或任何服务器端(例如REST资源),可以读取该属性并与前端通信

第三,, 像这样修改战争的pom:

<build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
                <includes>
                    <include>**/*.properties</include>
                </includes>
            </resource>
        </resources>
<build>

src/main/resources
真的
**/*.物业
希望这有助于

如前所述 在pom中使用${buildNumber}可以获得修订号

 <finalName>$\{project.artifactId}-r$\{buildNumber}</finalName>
$\{project.artifactId}-r$\{buildNumber}

要将其传播到应用程序可用的资源中,您可以使用vincent的答案中的说明。

已经得到了,这让我得到了依赖版本,但不是修订版#我的坏,因此本文的结尾可能会有同样的帮助,这会让您得到当前应用程序的版本号,但是依赖关系呢?如果你想知道WAR中其他JAR的buildNumber,你可以在每个JAR中有buildNumber属性文件:jar1_version.properties,jar2_version.properties。在主war中,您可以从类路径加载它们:
stringprops[]=newstring[]{“jar1\u ver.props”、“jar2\u ver.props”};对于(字符串p:Arrays.asList(props)){Properties p1=new Properties();p1.load(this.getClass().getResourceAsStream(p));p1.get(“version”);}