【问题标题】:Maven assembly plugin: excluding files while using a standard descriptorRefMaven 程序集插件:在使用标准descriptorRef 时排除文件
【发布时间】:2011-06-29 03:50:38
【问题描述】:

我正在开发一个简单的、独立的命令行 Java 应用程序。该项目由 Maven 管理。我想构建一个可交付成果,可以在客户端机器上复制和运行。

默认的 'jar-with-dependencies' 类型的 maven-assembly 插件对我来说没问题,但是 我不想将 log4j.properties 文件打包到 jar 中。我宁愿把它放在一个单独的“res”文件夹中。

我已经设法在 res 文件夹的清单文件中放置了一个 Class-Path 标头,但是我无法从生成的 jar 中排除 log4j.properties 文件。

我正在尝试的是在不编写自定义程序集描述符的情况下排除该文件。我想自定义默认解决方案,如下所示:

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <configuration>
        <excludes>
            <exclude>**/log4j.properties</exclude>
        </excludes>
      <archive>
            <manifest>
              <mainClass>com.my.App</mainClass>
            </manifest>
            <manifestEntries>
                <Class-Path>res/</Class-Path>
            </manifestEntries>
      </archive>
      <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
      </descriptorRefs>
    </configuration></plugin>

但它不起作用。我是否必须为此编写自定义程序集描述符?

【问题讨论】:

  • 将 log4j.properties 从 src/main/resources 文件夹中移开。

标签: maven-2 maven-assembly-plugin


【解决方案1】:

doc 看来,您似乎无法通过单独自定义&lt;plugin&gt; 参数来排除文件。

&lt;excludes&gt; 看起来不像插件的有效参数,因此被忽略。

【讨论】:

  • 帮助我的是我找到了内置“jar-with-dependencies”格式的程序集描述符。使用它,我只需稍作修改即可逃脱。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多