1

首先使用一个 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 文件部署到远程存储库。

4

2 回答 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 插件将部署附加到您的项目或模块的所有工件,即您的.jartar.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 回答