【问题标题】:How can I add a file to a classpath but not to a jar with maven?如何将文件添加到类路径而不是使用 maven 的 jar?
【发布时间】:2011-07-17 00:20:19
【问题描述】:

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

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

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

问候,

【问题讨论】:

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


    【解决方案1】:

    我建议使用默认位置来查找应用程序配置(例如,用户主目录,如您所建议的),但允许用户提供 agrument/System 属性来覆盖此位置。在我看来,假设查看类路径并不是最好的解决方案,因为类路径的概念对大多数用户来说是相当陌生的东西,甚至对于某些程序员来说也很难确定。

    【讨论】:

      【解决方案2】:

      我认为 Melv 是对的 - 最好将配置存储在主目录中并提供更改它的能力,但如果有人需要在类路径中添加一些内容 - 您只需将以下代码添加到 <configuration><archive>

      <manifestEntries>
          <Class-Path>config/</Class-Path>
          <mode>development</mode>
          <url>${pom.url}</url>
      </manifestEntries>
      

      如果你声明&lt;addClasspath&gt;true&lt;/addClasspath&gt;,那么依赖类路径也会被添加。

      【讨论】:

        猜你喜欢
        • 2015-09-27
        • 1970-01-01
        • 1970-01-01
        • 2013-11-24
        • 2012-05-15
        • 2016-07-10
        • 2011-03-25
        • 1970-01-01
        • 2010-12-03
        相关资源
        最近更新 更多