【发布时间】:2019-10-10 05:12:20
【问题描述】:
我正在尝试让 POM.xml 生成两个 jar 文件。一个包含所有类,另一个不包括其中一个类。
我要排除的文件名为“ExcludeMe1.java”。我是新手,但它不是我的第一个圈地,在下面的代码中,我排除了 ExcludeMe1.class。但是 jar 文件的大小保持不变,我相信它仍然包含我排除的类。这就是我的意思...
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<appendAssemblyId>false</appendAssemblyId>
<archive>
<manifest>
<mainClass>com.costanzo.mavendemo.MavenDemo1</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
<execution>
<id>make-assembly22</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<excludes>
<exclude>${project.basedir}/target/excludeMe/ExcludeMe1.class</exclude>
</excludes>
<archive>
<manifest>
<mainClass>com.costanzo.mavendemo.MavenDemo1</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
我期望发生的是排除类文件,其大小为 1KB。因此,我期望 N 和 N-1,而不是让两个 jar 的大小都为 N。
我对 Maven 还是很陌生,希望大家能理解。如果您需要,请随时提问我会经常检查这个东西,因为它是一个高优先级项目。
【问题讨论】:
-
为什么要做一个项目的两个jar?使用 maven-assembly-plugin 完成为什么?制作一个可执行的jar?这是不同的东西吗?排除文件通常是个坏主意...您排除的类不应该是项目的一部分,或者只是如果还没有准备好被放到版本控制中的分支上...
-
基本上我已经演示了这个基本概念,以便获得隐藏文件夹的答案。如果给我一个关于类文件的示例,我将能够从那里找出一个文件夹