2011-02-17 72 views
3

我正在开发一个简单的,独立的命令行Java应用程序。该项目由Maven管理。我想建立一个交付物,可以在客户机上复制并运行。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> 

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

+0

将log4j.properties从src/main/resources文件夹中移走。 – khmarbaise 2011-02-17 15:32:27

回答

2

doc看来,您不能通过自定义<plugin>参数来排除文件。

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

+0

对我有什么帮助的是,我找到了内置的jar-with-dependencies格式的程序集描述符。使用这个我可以稍作修改。 – Karl 2011-02-21 12:46:50