maven自动打包上传nexus仓库配置

时间:2023-03-08 17:08:14

一个基础类,可能要升级并放到私服库里,为了方便,应该能够自动打包放到nexus。这就需要配置maven一些参数与pom.xml。

依次在settings.xml文件裡輸入

  1. <!-- nexus帳號和密碼-->
  2. <server>
  3. <id>releases</id>
  4. <username>admin</username>
  5. <password>admin123</password>
  6. </server>
  7. <server>
  8. <id>snapshots</id>
  9. <username>admin</username>
  10. <password>admin123</password>
  11. </server>
  12. </servers>
  13. ...
  14. <!-- 引用naxus倉庫組-->
  15. <profile>
  16. <id>dev</id>
  17. <repositories>
  18. <repository>
  19. <id>nexus</id>
  20. <url>http://127.0.0.1:8081/nexus/content/groups/public/</url>
  21. <releases>
  22. <enabled>true</enabled>
  23. </releases>
  24. <snapshots>
  25. <enabled>true</enabled>
  26. </snapshots>
  27. </repository>
  28. </repositories>
  29. <pluginRepositories>
  30. <pluginRepository>
  31. <id>nexus</id>
  32. <url>http://127.0.0.1:8081/nexus/content/groups/public</url>
  33. <releases>
  34. <enabled>true</enabled>
  35. </releases>
  36. <snapshots>
  37. <enabled>true</enabled>
  38. </snapshots>
  39. </pluginRepository>
  40. </pluginRepositories>
  41. </profile>
  42. ..
  43. <!-- nexus -->
  44. <activeProfiles>
  45. <activeProfile>dev</activeProfile>
  46. </activeProfiles>

注意:根據標籤位置準確輸入

在本项目的pom.xml配置即可 
<!--上传配置 必须-->

<distributionManagement>
<repository>
<id>releases</id>
<url>http://127.0.0.1:8081/nexus/content/repositories/releases</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://127.0.0.1:8081/nexus/content/repositories/snapshots</url>
</snapshotRepository>
</distributionManagement>

<!--上传source.jar 非必须-->

<build>

<plugins>

<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>

</plugins>

</build>

上面的ID和pom.xml中对应distributionManagement-> repository的ID,用户名和密码需要在nexus中配置。

完成以上配置,只要输入命令:mvn deploy 即可。

遇到的问题:

maven deploy到nexus报错:Return code is: 401, ReasonPhrase:Unauthorized

提交到nexus时候报错:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project *: Failed to deploy artifacts: Could not transfer artifact *:jar:1.0 from/to releases (http://10.1.81.199:8081/nexus/content/repositories/releases/): Failed to transfer file:http://10.1.81.199:8081/nexus/content/repositories/releases/com/cs2c/security-management-client* /1.0/*-1.0.jar. Return code is: 401, ReasonPhrase:Unauthorized.

原来是没有配置认证。

maven目录conf的setting.xml里,

  1. <server>
  2. <id>releases</id>
  3. <username>admin</username>
  4. <password>admin123</password>
  5. </server>
  6. <server>
  7. <id>snapshots</id>
  8. <username>admin</username>
  9. <password>admin123</password>
  10. </server>
  11. </servers>

用户名和密码都是nexus的。再次deploy即可。

注意这里的id要和pom.xml里远程deploy的地址对应一致,我的pom.xml里配置:

    1. <!-- 配置远程发布到私服,mvn deploy -->
    2. <distributionManagement>
    3. <repository>
    4. <id>releases</id>
    5. <name>Nexus Release Repository</name>
    6. <url>http://10.1.81.199:8081/nexus/content/repositories/releases/</url>
    7. </repository>
    8. <snapshotRepository>
    9. <id>snapshots</id>
    10. <name>Nexus Snapshot Repository</name>
    11. <url>http://10.1.81.199:8081/nexus/content/repositories/snapshots/</url>
    12. </snapshotRepository>
    13. </distributionManagement>