我使用Spring和Maven構建我的項目,並在src/main/resources路徑(application.properties,log4j.properties)中有兩個文件。如果我在IDE中打開了我的項目並運行它,則一切正常,可以更改application.properties文件中的值並再次使用更改後的值運行項目。但是當我運行一個命令mvn clean install所以是的,我得到.jar文件,但我不能用.properties文件配置這個.jar文件。這個.jar在構建之前使用屬性文件中的值。Spring + Maven + .properties文件
我不知道這是否重要,但這是我如何在Spring應用程序上下文中定義屬性文件的方式。
@PropertySource({"application.properties", "log4j.properties"})
public class AppConfig {
我將這些插件放在pom.xml文件中。可以嗎?你能幫我嗎?它看起來像builded .jar項目不知道在同一目錄級別的.properties文件。
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<!-- nothing here -->
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-4</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>cz.cvut.fit.bouchja1.ensemble.main.EnsembleApp</mainClass>
</manifest>
<manifestEntries>
<Class-Path>.</Class-Path> <!-- HERE IS THE IMPORTANT BIT -->
</manifestEntries>
</archive>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
當你離開Class-Path時會發生什麼? –
你的意思是如果我刪除它?我會嘗試。 –
您是否嘗試爲@PropertySource指定文件路徑?我認爲這將工作︰@PropertySource({「classpath:application.properties」,「classpath:log4j.properties」}) – gerardribas