我有一個典型的 Maven 專案結構,simplelogger.properties檔案在類路徑中:
MyProject
`-- src
|-- main/java/com.mypackage.MyClass
`-- resources
`-- simplelogger.properties
這在 IDE 中完美運行,因為正確的 SimpleLogger 配置已經在類路徑中。我想simplelogger.properties在打包完成的 .jar 中有另一個檔案(輸出到檔案而不是 System.out)。
打包.jar時,有沒有辦法用Maven從其他地方用另一個檔案替換simplelogger.propertiesclasspath檔案上的檔案?simplelogger.properties
uj5u.com熱心網友回復:
運行應用程式時,可以將 simplelogger.properties檔案放在類路徑或程式的作業目錄中。
`-- work-dir
|-- myApp.jar
`-- simplelogger.properties
如果您的應用程式在 IDE 中正常運行,并且在打包時未正常運行,則您的 JAR 檔案可能不包含資源。在這種情況下,您可以在pom.xml檔案中使用以下配置將資源復制到 JAR 檔案中。
<configuration>
<outputDirectory>${basedir}/target/classes</outputDirectory>
<includeEmptyDirs>true</includeEmptyDirs>
<resources>
<resource>
<directory>${basedir}/src/customize</directory>
<filtering>false</filtering>
</resource>
<resource>
<directory>${basedir}/src/resources</directory>
<filtering>false</filtering>
</resource>
</resources>
</configuration>
uj5u.com熱心網友回復:
如果您的 jar 檔案已經構建,您可以覆寫您的屬性:
java -jar myjar.jar --spring.config.location=D:\wherever\new-logger.properties
但是,我檢查了 Spring Boot 專案。
您可以在此處查看更多資訊:
- 外化配置
uj5u.com熱心網友回復:
這在某種程度上是一個 XY 問題。我建議這樣做:
有兩個模塊。您擁有的那個,并將您的 simplelogger 組態檔放在類路徑的測驗部分。這將確保它不會進入生成的 jar(這是您當前問題的主要原因)。
然后有一個部署模塊,它將部署組態檔以您需要的形式從上面添加到您的工件中。當您需要多個部署時,只需為每個部署創建一個模塊。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/484338.html
下一篇:NoClassDefFoundError:org/apache/storm/kafka/spout/KafkaSpoutConfig
