Maven程序集插件:使用标准descriptorRef时排除文件

时间:2011-02-17 14:44:00

标签: maven-2 maven-assembly-plugin

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

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

我已经设法将一个Class-Path标头放在res文件夹的清单文件中,但是我无法从生成的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>

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

1 个答案:

答案 0 :(得分:2)

doc开始,您似乎无法通过单独自定义<plugin>参数来排除文件。

<excludes>看起来不像插件的有效参数,因此被忽略了。