我有一个java项目(没有spring),我试图获取java中的当前配置文件,但我找不到如何实现
我尝试使用:
Properties prop = new Properties();
// ClassLoader loader = Thread.currentThread().getContextClassLoader();
// InputStream stream = loader.getResourceAsStream("/config/archicon.properties");
try {
prop.load(Archicon.class.getClassLoader().getResourceAsStream("config/archicon.properties"));
System.out.println(prop.getProperty("profile.na"));
System.out.println(prop.getProperty("profile.me"));
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
这是我的照片
<properties>
<profile.name>${current.profile}</profile.name>
以及:
<profile>
<id>turchia</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<current.profile>-- TURCHIA --</current.profile>
</properties>
</profile>
这是我的网站app.properties:
profile.na= ${profile.name}
profile.me= ${current.profile}
这是我的过滤器资源:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<id>copy-resources-1</id>
<configuration>
<goals>
<goal>write-project-properties</goal>
</goals>
<resources>
<resource>
<directory>src/main/resources/config</directory>
<filtering>true</filtering>
<includes>
<include>*.properties</include>
</includes>
<targetPath>${project.basedir}/target</targetPath>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>copy-resources-2</id>
<configuration>
<!-- <warSourceDirectory>${project.basedir}/WebContent</warSourceDirectory> -->
<webXml>${current.webXml}</webXml>
<failOnMissingWebXml>false</failOnMissingWebXml>
<!-- <warSourceExcludes>css/</warSourceExcludes> -->
<webResources>
<resource>
<directory>${jbossWeb.folder}/${current.jbossWeb}</directory>
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>
</configuration>
</execution>
</executions>
</plugin>
但它不起作用,还有别的建议吗
1条答案
按热度按时间5lhxktic1#
我不知道你为什么要在war插件的执行中添加资源配置。
过滤可以发生在所有类型的构建中,而不仅仅是在打包战争时,所以我将在pom中添加以下内容。(我只是添加外部标记来显示在层次结构中放置它的位置,它不是一个完整的pom)
我必须在部分中包含资源,所以只有 application.properties 被过滤,但其他资源也会被复制,就像现在这样。