Java maven不重新打包依赖项
我使用maven汇编插件将所有依赖项收集到一个jar文件中。我如何告诉maven不要重新打包依赖项并将它们作为jar文件包含到结果jar中 目前我使用以下插件配置Java maven不重新打包依赖项,java,maven,maven-assembly-plugin,Java,Maven,Maven Assembly Plugin,我使用maven汇编插件将所有依赖项收集到一个jar文件中。我如何告诉maven不要重新打包依赖项并将它们作为jar文件包含到结果jar中 目前我使用以下插件配置 <plugin> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<archive>
<manifest>
<mainClass>package.Program</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
而不是
my-jar-with-dependencies.jar
|-class1.class
|-class2.class
|-.............
如果我正确理解了这个问题,那么您需要指定何时运行程序集插件。在这种情况下,您应该考虑创建一个并将程序集插件配置添加到新的配置文件。 在pom.xml中添加:
<project>
...
<profiles>
<profile>
<id>myprofile</id>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<archive>
<manifest>
<mainClass>package.Program</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
...
</project>
不,我希望将汇编插件设置为不将依赖项解压缩到生成的jar文件中。它必须将它们作为jar文件包含。您应该使用zip和依赖项描述符ref,jar不能包含其他jar
maven assembly plugin
可以创建zip文件(zip
在您的程序集描述符文件中),但您需要将其解压以实际运行应用程序。@dma_k,但是eclipse能够导出带有嵌入式jar的jar。您接下来如何处理这个jar?您能从命令行执行它吗?
<project>
...
<profiles>
<profile>
<id>myprofile</id>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
<configuration>
<archive>
<manifest>
<mainClass>package.Program</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
...
</project>
mvn -Pmyprofile clean package