我的pom文件的包装是pom。
我想将生成的jar和pom文件上传到存储库,如下所示。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.7</version>
<executions>
<execution>
<id>default-cli</id>
<phase>package</phase>
<goals>
<goal>deploy-file</goal>
</goals>
<configuration>
<file>target/${artifactId}-${version}.jar</file>
<repositoryId>SERVER-Snapshots</repositoryId>
<url>https://test.nexsus.com/content/repositories/snapshots/</url>
</configuration>
</execution>
</executions>
</plugin>
我收到以下错误。
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:
deploy-file (default-cli) on project xxx: The artifact information is inco
mplete or not valid:
[ERROR] [0] 'groupId' is missing.
[ERROR] [1] 'artifactId' is missing.
[ERROR] [2] 'version' is missing.
[ERROR] -> [Help 1]
jar包装pom也会部署文件,例如jar,sha1,md5,pom和zip。我该如何排除其中一些?
答案 0 :(得分:2)
您无法从pom使用deploy:deploy-file。要部署其他文件,请使用构建帮助程序将它们作为附加工件附加到当前项目。
答案 1 :(得分:1)
如果您只想将工件上传到本地存储库管理器,您只需按照以下步骤在POM中配置它:
<distributionManagement>
<repository>
<id>releases</id>
<name>Releases</name>
<url>https://test.nexsus.com/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<name>Snapshots</name>
<url>https://test.nexsus.com/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
然后执行mvn deploy
。
答案 2 :(得分:0)
jar包装pom也会部署文件,例如jar,sha1,md5,pom和zip。我该如何排除其中一些?
找出生成不需要的工件的内容,并在生成它们时停止。默认情况下,jar模块应该生成jar,pom,md5和sha1文件。还有其他东西正在产生这个拉链(可能是Maven Assembly Plugin?),所以如果你不想要它就禁用“别的东西”。
AFAIK,没有办法配置deploy:deploy不从模块部署一些工件。只能使用skip
参数从该模块中部署任何内容。
答案 3 :(得分:0)
部署插件需要部署文件的GAV信息。如果添加以下配置,它可以从当前的pom中提取它们:
&LT; pomFile&GT; pom.xml的&LT; / pomFile&GT;