2016-09-21 62 views
0

我有logback.properties文件,其中包含以下屬性。如何從屬性文件中訪問POM項目名稱

#logging 
logging.server= 
logging.port= 
logging.path=/opt/${project.name}/logs 

裏面我POM文件我已經得到了<name>標籤,指定項目名稱。我想在上面的lockback之類的幾個屬性文件中注入此名稱。執行上述操作會創建一個名爲project.name_IS_UNDEFINED的文件夾。有沒有可能訪問項目名稱,以及如何?

UPDATE 拉爾夫給出了正確的答案,但檢查我的意見,因爲春季啓動應用程序,你需要使用%project.name%代替${project.name}

+0

可能的複製http://stackoverflow.com/questions/4107222/can-i-inject-properties-from-maven-passwords-defined-in-settings-xml-into-my-s –

+0

@ A_Di-Matteo不是。 –

回答

1

你需要在你Maven的編譯時間腳本在運行時將應用程序轉移定義的屬性。

最簡單的方法是使用maven's resource filtering(這個名字有點誤導,它不是選擇文件的篩選器,它是一個屬性替換爲文本/資源文件)爲了讓行家取代${project.name}在你的logback .properties文件。

真正 $ {BASEDIR}/src目錄/主/資源

如果你想實現資源的過濾只是一個文件(而不是爲別人,以防止更換其他標記行家,那麼你可以使用這個片段:的

<resources> 
    <!-- enable filtering for logback.properties only --> 
    <resource> 
     <filtering>false</filtering> 
     <directory>${basedir}/src/main/resources</directory> 
     <includes> 
      <include>**/*</include> 
     </includes> 
     <excludes> 
      <exclude>WHEREVER_LOCATED/logback.properties</exclude> 
     </excludes> 
    </resource> 
    <resource> 
     <filtering>true</filtering> 
     <directory>${basedir}/src/main/resources</directory> 
     <includes> 
      <include>WHEREVER_LOCATED/logback.properties</include> 
     </includes> 
    </resource> 
</resources> 
+0

謝謝,拉爾夫。你的回答幫助我,因爲我錯了唱過濾:)。但是因爲我正在開發一個彈簧啓動應用程序,所以這並沒有完全解決我的問題。相反,我不得不使用%project.name%請參閱http://stackoverflow.com/questions/36501017/maven-resource-filtering-not-working- because-of-spring-boot-dependency。 –