Java 为什么maven两次部署带有依赖项的jar?
我使用maven assembly插件构建带有依赖项的jar,然后我想将其部署到Nexus存储库中 当我使用Java 为什么maven两次部署带有依赖项的jar?,java,maven,maven-assembly-plugin,maven-deploy-plugin,Java,Maven,Maven Assembly Plugin,Maven Deploy Plugin,我使用maven assembly插件构建带有依赖项的jar,然后我想将其部署到Nexus存储库中 当我使用mvn-deploy时,一切都很好,但是当我尝试使用mvn-install-deploy时,所有其他模块也可以很好地部署,但是带有依赖项的jar会部署两次 部署插件的配置: <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plu
mvn-deploy
时,一切都很好,但是当我尝试使用mvn-install-deploy
时,所有其他模块也可以很好地部署,但是带有依赖项的jar会部署两次
部署插件的配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<deployAtEnd>true</deployAtEnd>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.test.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
org.apache.maven.plugins
maven部署插件
2.8.2
真的
程序集插件的配置:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<deployAtEnd>true</deployAtEnd>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.test.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
maven汇编插件
带有依赖项的jar
com.test.Main
问题:有人知道为什么会上载两次吗?deploy将自动调用install作为构建生命周期的一部分,因此无需再次显式调用它。如果部署插件上存在任何进一步的配置,您是否可以共享pom的某些部分?您的设置一定有问题。你能发布你的整个POM吗?是的,但有趣的是为什么
mvn install deploy
正确地部署了所有jar,并且只部署了两次具有依赖关系的jar。我添加了maven插件配置。调用mvn install deploy
没有意义,因为如果您在结果中调用mvn deploy
,则使用mvn install
运行的生命周期阶段也将包括在内,这意味着在mvn install
中运行的所有生命周期阶段都将重复,这是不需要的。deploy将自动调用install作为构建生命周期的一部分,因此无需再次显式调用它。如果部署插件上存在任何进一步的配置,您是否可以共享pom的某些部分?您的设置一定有问题。你能发布你的整个POM吗?是的,但有趣的是为什么mvn install deploy
正确地部署了所有jar,并且只部署了两次具有依赖关系的jar。我添加了maven插件配置。调用mvn install deploy
没有意义,原因如果您在结果中调用mvn deploy
,则使用mvn install
运行的生命周期阶段也将包括在内,这意味着在mvn install
中运行的所有生命周期阶段都将重复,这是不需要的。