我想在类路径中添加一些配置(由maven-jar-plugin生成),但我不希望它们在jar中,而是在外部文件夹中。这样我就可以编辑配置而无需重新打包。 我找到了一个解决方案How to add a classpath entry when executing the app with exec plugin但是有一个不太复杂的解决方案吗?
或许我错了,这是一个糟糕的模式 - 在类路径中存储配置但在Jar之外?也许最好将应用程序配置存储在用户的主目录中,并在运行时将它们添加到应用程序中?
例如,我想允许最终用户编辑log4j.properties和翻译。
此致
答案 0 :(得分:1)
我建议使用默认位置查找应用配置(例如用户主目录,如您所建议的),但允许用户提供agrument / System属性来覆盖此位置。在我看来,假设查看类路径并不是最佳解决方案,因为类路径的概念对于大多数用户来说是相当陌生的事情,甚至可能很难为某些程序员确定。
答案 1 :(得分:0)
我认为Melv是对的 - 更好地在主目录中存储配置并提供更改它的能力,但如果有人需要在classpath中添加一些内容 - 您只需将以下代码添加到<configuration><archive>
。
<manifestEntries>
<Class-Path>config/</Class-Path>
<mode>development</mode>
<url>${pom.url}</url>
</manifestEntries>
如果声明<addClasspath>true</addClasspath>
,则还会添加依赖类路径。