首先使用一个 pom.xml,我使用 maven-jar-plugin 创建一个 jar 文件并使用 maven-jarsigner-plugin 对其进行签名,其次我使用 maven-assembly-plugin 创建一个 tar.gz 包,复制 jar 文件和其他必要的文件到 tar.gz。正因为只有 tar.gz 包对我来说就足够了,所以我只想要 tar.gz 包来部署远程存储库。当我运行“mvn deploy”命令时,jar 和 tar.gz 包都被部署了。有什么方法可以不将 jar 文件部署到远程存储库。
问问题
2922 次
2 回答
1
我试过你的建议。它不适用于 maven-deploy-plugin 但它适用于 maven-install 插件。这是我的 pom.xml 的相对部分:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.4</version>
<configuration>
<skip>true</skip>
</configuration>
<executions>
<execution>
<phase>install</phase>
<goals>
<goal>install-file</goal>
</goals>
<configuration>
<file>${project.build.directory}/${project.build.finalName}-dev.tar.gz</file>
<artifactId>${project.artifactId}</artifactId>
<groupId>${project.groupId}</groupId>
<packaging>tar.gz</packaging>
<version>${project.version}</version>
<classifier>dev</classifier>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip>
</configuration>
<executions>
<execution>
<phase>deploy</phase>
<goals>
<goal>deploy-file</goal>
</goals>
<configuration>
<url>http://repo/artifactory/snapshots</url>
<file>${project.build.directory}/${project.build.finalName}-dev.tar.gz</file>
<artifactId>${project.artifactId}</artifactId>
<groupId>${project.groupId}</groupId>
<packaging>tar.gz</packaging>
<version>${project.version}</version>
<classifier>dev</classifier>
</configuration>
</execution>
</executions>
</plugin>
maven-install-plugin 仅将 tar.gz 文件安装到本地存储库,但 maven-deploy-plugin 将 tar.gz 和 jar 文件都部署到远程存储库。我认为这种行为可能是 maven-deploy-plugin 的错误。
于 2017-11-30T13:30:09.137 回答
0
默认情况下,Maven Deploy 插件将部署附加到您的项目或模块的所有工件,即您的.jar和tar.gz文件。
deploy:deploy
用于自动安装工件、它的 pom 和特定项目生成的附加工件。
您可以做的是跳过deploy:deploy
目标并配置个性化deploy:deploy-file
目标,例如:
<build>
...
<plugins>
...
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
<configuration>
<skip>true</skip> <!-- Skip the default deploy -->
</configuration>
<executions>
<!-- Deploy our tar.gz -->
<execution>
<phase>deploy</phase>
<goals>
<goal>deploy-file</goal>
</goals>
<configuration>
<file>${project.build.directory}/${project.build.finalName}.tar.gz</file>
<artifactId>${project.artifactId}</artifactId>
<groupId>${project.groupId}</groupId>
<packaging>tar.gz</packaging>
<version>${project.version}</version>
</configuration>
</execution>
</executions>
</plugin>
...
</plugins>
...
</build>
您必须进行配置<file>
以使用您生成的tar.gz文件。
于 2017-11-28T13:51:21.927 回答