如何读取java在boom中定义的项目属性?

如何读取java在boom中定义的项目属性?,java,maven,Java,Maven,我有一个属性文件,我告诉maven从中读取并将其添加到项目属性中。 我想在运行时从java访问这些属性 实现这一目标的最佳方式是什么? *我注意到System.getProperty(“myPropertyName”)==null因为我没有尝试读取java系统属性。我是currect吗 pom: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins

我有一个属性文件,我告诉maven从中读取并将其添加到项目属性中。 我想在运行时从java访问这些属性

实现这一目标的最佳方式是什么? *我注意到
System.getProperty(“myPropertyName”)==null
因为我没有尝试读取java系统属性。我是currect吗

pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mycompany.app</groupId>
    <artifactId>my-app</artifactId>
    <packaging>jar</packaging>
    <version>1.0-SNAPSHOT</version>
    <name>my-app</name>
    <url>http://maven.apache.org</url>

    <build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>properties-maven-plugin</artifactId>
            <version>1.0.0</version>
            <executions>
                <execution>
                    <phase>initialize</phase>
                    <goals>
                        <goal>read-project-properties</goal>
                    </goals>
                    <configuration>
                        <files>
                            <file>${project.basedir}/src/main/resources/bo.properties</file>
                        </files>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>
</project>

4.0.0
com.mycompany.app
我的应用程序
罐子
1.0-快照
我的应用程序
http://maven.apache.org
org.codehaus.mojo
属性maven插件
1.0.0
初始化
读取项目属性
${project.basedir}/src/main/resources/bo.properties

Maven用于构建您的程序。当您运行程序时,它不知道它是由Maven构建的,也不关心属性是否加载到Maven构建中。你的代码是什么,你的jar文件包含什么,你希望这段代码做什么,它做什么?我还没有任何代码,只有一个空的main方法。那么,如果在运行时无法访问项目属性,那么maven中的项目属性有什么意义呢?在不同的文件中写入一些属性并访问它们的最佳方法是什么?我想在运行时从java中访问这些属性:空的main方法不能做到这一点。只需删除这个属性maven插件。默认情况下,Maven会将src/main/resources下的所有内容添加到项目的类路径(即,添加到构建的jar),然后可以使用Class.getResource[AsStream]()加载资源。在Maven构建中加载属性的目的是能够在构建过程中使用这些属性。感谢您的快速重播。你确实回答了我的问题。在其他上下文中,您所说的“Maven by轻松地将src/main/resources下的所有内容添加到项目的类路径”是什么意思?你是说只有路径:“src/main/resources”吗?如果我在那里有文件夹或罐子,它们也会被添加吗?你能举出一个例子作为回答吗?谢谢你的帮助!不,我的措辞不太准确。我的意思是,所有文件递归地位于src/main/resources中,最后与.class文件一起放在target/classes目录中,然后与.class文件一起捆绑在生成的jar文件中。因此,可以在运行时使用类加载器加载这些资源。Maven用于构建您的程序。当您运行程序时,它不知道它是由Maven构建的,也不关心属性是否加载到Maven构建中。你的代码是什么,你的jar文件包含什么,你希望这段代码做什么,它做什么?我还没有任何代码,只有一个空的main方法。那么,如果在运行时无法访问项目属性,那么maven中的项目属性有什么意义呢?在不同的文件中写入一些属性并访问它们的最佳方法是什么?我想在运行时从java中访问这些属性:空的main方法不能做到这一点。只需删除这个属性maven插件。默认情况下,Maven会将src/main/resources下的所有内容添加到项目的类路径(即,添加到构建的jar),然后可以使用Class.getResource[AsStream]()加载资源。在Maven构建中加载属性的目的是能够在构建过程中使用这些属性。感谢您的快速重播。你确实回答了我的问题。在其他上下文中,您所说的“Maven by轻松地将src/main/resources下的所有内容添加到项目的类路径”是什么意思?你是说只有路径:“src/main/resources”吗?如果我在那里有文件夹或罐子,它们也会被添加吗?你能举出一个例子作为回答吗?谢谢你的帮助!不,我的措辞不太准确。我的意思是,所有文件递归地位于src/main/resources中,最后与.class文件一起放在target/classes目录中,然后与.class文件一起捆绑在生成的jar文件中。因此,可以在运行时使用类加载器加载这些资源。