Maven创建Jar并排除文件

Maven创建Jar并排除文件,maven,maven-assembly-plugin,Maven,Maven Assembly Plugin,我正在尝试创建一个可运行的Jar文件。我必须只创建一个包含一个java类(MyClass,它位于文件夹结构src/main/java/org/miso/mcs/util/MyClass)的Jar,并排除其他类。我可以创建一个JAR,但它拥有一切 我正在使用mvncleanpackageassembly:single命令创建Jar maven汇编插件 带有依赖项的jar org.miso.mcs.util.MyClass src/main/java/org/miso/mcs/util /*我的班

我正在尝试创建一个可运行的Jar文件。我必须只创建一个包含一个java类(
MyClass
,它位于文件夹结构
src/main/java/org/miso/mcs/util/MyClass
)的Jar,并排除其他类。我可以创建一个JAR,但它拥有一切

我正在使用
mvncleanpackageassembly:single
命令创建Jar


maven汇编插件
带有依赖项的jar
org.miso.mcs.util.MyClass
src/main/java/org/miso/mcs/util
/*我的班级*
/*

您将无法使用预定义的描述符来执行此操作。但是,我们可以为此创建自己的程序集描述符:

允许控制JAR中未打包依赖项的内容。在本例中,我们排除了
org.miso
包下的所有内容(我假设是您项目的类),我们只包括您感兴趣的类(
org.miso.mcs.util.MyClass
)。这将导致一个只包含项目指定类的可运行JAR

因为你的项目是一场战争,所以要复杂一点。第一个依赖项集声明项目的所有依赖项并将其解压缩。第二个只使用项目附件,并且只包括由
maven-war插件构建的
classes
附件

如果将该代码段保存到位于
src/assembly
下的名为
assembly.xml
的文件中,则POM将如下所示:


maven战争插件
2.6
真的
maven汇编插件
2.6
组装
包裹
单一的
src/assembly/assembly.xml
org.miso.mcs.util.MyClass

有了这样的配置,您只需要通过
mvncleanstall
调用Maven,它就会正确地生成JAR。然后,您可以使用JAR.JAR的
java-JAR名称启动该JAR

谢谢Tunaki的帮助。