2016-08-25 94 views
1

我有一個用Scala編寫的Maven項目,並且部署爲.jar。該項目具有典型的結構:Maven應用程序(Java/Scala)中的自定義配置文件

project-root 
|__src 
    |__main 
    | |__scala 
    | |__resources 
    | 
    |__test 
     |__scala 
     |__resources 

我在應用程序中有很多硬編碼值,我想提取到配置文件。

我可以在任何地方創建一個文本配置文件,從代碼中讀取它並使用參數,但我正在尋找最佳實踐/方法。我想把這件事考慮在內:

  • 有沒有辦法讓我可以更改配置值,而不必重建.jar?這將是非常實際的。
  • 哪裏會是該文件的最佳位置?例如,創建一個project-root/src/config目錄並將文件放在那裏?
  • 關於選擇不同格式的任何顯着的原因?我會使用XML,但是我已經看到相當多的YAML和HOCON ...

回答

1

如果您希望能夠在不構建jar的情況下更改配置值,則需要配置外部到神器。有許多方法可以修改內置的jar的內容,但我不認爲這就是你想要做的。如果你想配置你可以隨時更改,請將它放在jar外面並在運行時在Classpath中引用它。

如果您想保留在工件上,並在更改值時重新構建,請將配置文件保存在src/main/resources中。 Maven會自動將它打包到您的jar文件中,並放在歸檔的根目錄中。

至於格式,這可能是個人喜好。讀取YAML通常需要另外一個庫(例如snakeyml)來有效地解析,所以如果您想讓庫保持依賴關係,可以查看.config或.properties文件。否則,對於複雜的配置,XML和YAML總是很好。

相關問題