11

我有以下插件用于创建-sources.jar一个特定的命名 jar 并将其部署到存储库。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-source-plugin</artifactId>
    <executions>
        <execution>
            <id>attach-sources</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-deploy-plugin</artifactId>
    <version>2.5</version>
    <configuration>
        <version>${project.version}-r${buildNumber}</version>
        <classifier>${env}</classifier>
        <packaging>jar</packaging>
        <file>${project.build.directory}/${project.build.finalName}.jar</file>
        <url>${artifactory.url}/libs-release-local</url>
        <repositoryId>artifactory.digiterre.com</repositoryId>
        <pomFile>${project.basedir}/pom.xml</pomFile>
    </configuration>
</plugin>

我希望同时部署*-sources.jar。我尝试添加第二个文件条目,甚至是第二个部署插件。我似乎部署了一个或其他文件。

是否可以一次性部署两者,deploy:deploy-file或者我是否必须设置第二个团队城市构建来部署源?

4

3 回答 3

8

使用时,生成的 jar 将自动附加到项目工件(maven-source-plugin参数的默认设置为'true'),如果您执行,它将与它一起部署。唉,不需要单独配置部署插件。deploy

不幸的是,您不能将分类器(${env}在您的情况下)添加到源 jar。这就是我使用以下配置的原因:

...
<artifactId>com.pie.mash.repo.mince-${env}</artifactId>
<version>1.18-r${buildNumber}</version>
...
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-source-plugin</artifactId>
      <version>2.1.2</version>
      <executions>
        <execution>
          <goals>
            <goal>jar-no-fork</goal>
          </goals>
        </execution>
      </executions>
    </plugin>
  </plugins>
</build>

另外,我在 SO 上找到了这个问题。您可以使用那里建议的解决方法。

于 2012-02-20T12:20:17.763 回答
4

我们可以用来deploy:deploy-file在主要 JAR 工件旁边上传多个 JAR(源、测试、文档)。我们只需要向deploy:deploy-file插件调用提供额外的信息。添加的内容在以下命令中以粗体表示:

mvn deploy:deploy-file
-Dfile=helloWorld.jar
-Durl=https://localhost/nexus/content/repositories/snapshots/
-DrepositoryId=snapshot
-Dfiles=helloWorld-6.4.1.3.SNAPSHOT-sources.jar,helloWorld- 6.4.1.3.SNAPSHOT-tests.jar
-Dtypes=jar,jar -Dclassifiers=sources,tests
-DgroupId=com
-DartifactId=helloWorld
-Dversion=6.4.1.3.SNAPSHOT
-Dpackaging=jar
-Dpomfile=pom.xml

  • 我们需要指定用逗号分隔的文件列表。
  • 我们需要指定这些附加文件的类型。
  • 我们需要为这些附加文件添加分类器信息。
于 2016-12-21T19:46:33.290 回答
1

mvn deploy:deploy-file只部署一个工件。相反,您可以使用mvn deploy(调用mvn deploy:deploy)来部署工件、它的 pom 以及附加的工件(如源代码和 javadoc)。请参阅Maven 部署插件的目标概述。

于 2012-02-20T16:53:56.193 回答