2017-05-04 84 views
1

我是一個相對的新手,我試圖構建一個接受外部配置文件的應用程序。我正在用Spring Tool Suite編寫它,並用Maven編譯它。Spring Tool Suite/Maven刪除我的.properties文件

我有一個src/main/java文件夾,其中包含所有我的類以及生成.jar文件的目標文件夾。

我試圖用自己的外部配置指南:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

我將創造./target並右鍵單擊>新建>文件,我將其命名爲「application.properties一個/ config文件。 「一旦我嘗試與它交互,我馬上就會警告這是一個派生文件。

在application.properties

,我把:

spring.application.name = "hello" 

在靜態類其他地方的文件結構,我把:

@Value("${name}") 
public static String name; 

時,我不僅包裝和運行.jar,它是否無法檢索name屬性,但.properties文件,有時還會刪除/ config文件夾!

我打破了什麼讓Maven刪除我的.properties文件?

+0

你需要把它放在src /''src/main/resources'中的適當位置。據我所知,目標目錄會經常清理。 – CollinD

+0

哪裏在項目中你放置.properties文件? – techtrainer

回答

0

如果您在target文件夾中創建文件,那麼它不時會被刪除。目標文件夾中的內容不時被Maven銷燬/創建,因爲它的目標是包含您的構建結果。當您通過示例發出clean package命令時,Maven將銷燬target中的內容,然後重新構建您的應用程序。

我相信你應該創建你的屬性在scr/main文件夾中的文件SOU你可以在你的項目中保留它,但你得弄清楚你的屬性如何文件將在您的應用程序的類路徑中可見

由於您正在運行一個jar文件,您可以在java命令行中添加一個參數(嘗試檢查IDE中的運行配置),添加屬性文件所在的文件夾。

0

您必須將屬性文件創建到WEB-INF文件夾中,並將屬性文件路徑和bean配置爲ApplicationContext.xml

<bean id="configProperties" 
    class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 

    <property name="location" value="WEB-INF/test-config.properties" /> 

</bean> 
0

將文件放到目標文件夾中確實會刪除它們。