我有以下插件用于创建-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
在一次传递中进行部署,或者我是否必须设置第二个团队城市构建才能部署源?
答案 0 :(得分:7)
使用maven-source-plugin
时,生成的jar会自动附加到项目工件(this参数的默认设置为'true'),如果执行deploy
,它将被部署用它。唉,不需要单独配置部署插件。
不幸的是,您无法在源jar中添加分类器(${env}
)。这就是我使用以下配置的原因:
...
<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上发现了this个问题。您可以使用那里建议的解决方法。
答案 1 :(得分:2)
我们可以使用deploy:deploy-file在主JAR工件上上传多个JAR(源,测试,文档)。我们只需要提供额外的信息来部署: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
我们需要指定用逗号分隔的文件列表 我们需要指定这些附加文件的类型 我们需要为这些附加文件添加分类器信息
答案 2 :(得分:1)
mvn deploy:deploy-file
仅部署一个工件。相反,您可以使用mvn deploy
(调用mvn deploy:deploy
)来部署工件,它的pom以及附加的工件(如source和javadoc)。请参阅maven deploy plugin的目标概述。