Maven,排除一个包下的所有类

时间:2019-02-01 07:05:02

标签: maven

这听起来很愚蠢,但是我真的很想知道我是否可以做到这一点(通过在pom.xml中添加一些“魔术”配置)。

比方说,我有一个项目,其中包含一堆软件包,其中一个名为“ com.foo.bar”,其中包含许多.java文件,其中包括一个名为“ Dummy.java”的文件。

现在,当生成jar文件时,我想排除com.foo.bar下的所有类,除了'Dummy'。

我尝试在一个部分中使用正则表达式,但是没有运气。

有一个简单的方法吗?非常感谢。

1 个答案:

答案 0 :(得分:1)

使用“大铁锤”(假设Dummy.class不是.java):

<plugin>
  <artifactId>maven-jar-plugin</artifactId>
  <configuration>
    <includes>
        <include>com/foo/bar/Dummy.class</include>
    </includes>
    <!-- alternatively(!) excludes/exclude* -->
  </configuration>
</plugin>

...或使用“瑞士军刀”:maven-assembly-plugin ... ^^!“%/”))

  

...

     

要在Maven中使用Assembly插件,您只需要:

     
      
  1. choosewrite要使用的程序集描述符,
  2.   
  3. configure您项目的pom.xml中的Assembly插件,
  4.   
  5. 和   在您的项目上运行“ mvn assembly:single”。   ...
  6.   

带有程序集descriptor,例如:

<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 
   http://maven.apache.org/xsd/assembly-2.0.0.xsd">
   <id>dummy-only</id>
   <formats>
     <format>jar</format>
   </formats>
   <includeBaseDirectory>false</includeBaseDirectory>
   <fileSets>
     <fileSet>
     <outputDirectory>/</outputDirectory>
     <directory>${project.build.outputDirectory}</directory>
     <includes>
       <include>com/foo/bar/Dummy.class</exclude>
     </includes>
   </fileSet>
  </fileSets>
</assembly>

另请参阅:I wish to exclude some class files from my jar. I am using maven-assembly-plugin. It still adds the files. I dont get any error