如何将文件添加到类路径中,而不是添加到带有maven的jar?

时间:2011-03-16 23:01:54

标签: java jar maven classpath maven-jar-plugin

我想在类路径中添加一些配置(由maven-jar-plugin生成),但我不希望它们在jar中,而是在外部文件夹中。这样我就可以编辑配置而无需重新打包。 我找到了一个解决方案How to add a classpath entry when executing the app with exec plugin但是有一个不太复杂的解决方案吗?

或许我错了,这是一个糟糕的模式 - 在类路径中存储配置但在Jar之外?也许最好将应用程序配置存储在用户的主目录中,并在运行时将它们添加到应用程序中?

例如,我想允许最终用户编辑log4j.properties和翻译。

此致

2 个答案:

答案 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>,则还会添加依赖类路径。