要將自定義的jar或者pom上傳至nexus私服,需要配置maven的settings檔案!

上傳至nexus私服配置

1. settings配置

  1. <!-- maven設定私服對應的資訊:id、使用者、密碼,其中,id必須和distrubutionManagement的id相同 -->
  2. <server>
  3. <id>db-maven-release</id>
  4. <username>admin</username>
  5. <password>admin123</password>
  6. </server>
  7. <server>
  8. <id>db-maven-snapshot</id>
  9. <username>admin</username>
  10. <password>admin123</password>
  11. </server>

2. 專案中pom配置

  1. <!-- pom中增加url -->
  2. <distributionManagement>
  3. <repository>
  4. <id>db-maven-release</id> <!-- id的名字可以任意取,但是在setting檔案中的屬性<server>的ID與這裡一致 -->
  5. <name>libs-release</name>
  6. <url>http://192.168.100.99:8081/repository/db-maven-hosted/</url>
  7. </repository>
  8. <snapshotRepository>
  9. <id>db-maven-snapshot</id>
  10. <name>libs-snapshot</name>
  11. <url>http://192.168.100.99:8081/repository/db-maven-snapshot/</url>
  12. </snapshotRepository>
  13. </distributionManagement>

上傳jar包

  • IDEA上傳比較簡單,直接直接mvn clear deploy就可以了
  1. mvn deploy:deploy-file --settings D:\apache-maven-3.6.1\conf\settings-nexus.xml
  2. -DgroupId=com.dangbo -DartifactId=core-base -Dversion=1.0.0-SNAPSHOT -Dpackaging=jar -Dfile=pom.xml
  3. -Durl=http://192.168.100.123:8081/repository/maven-snapshots/ -DrepositoryId=snapshots

上傳pom檔案

  1. mvn deploy:deploy-file --settings D:\apache-maven-3.6.1\conf\settings-nexus.xml -Dfile.encoding=UTF-8
  2. -DgroupId=com.dangbo -DartifactId=core-dependencies -Dversion=1.0.0-SNAPSHOT -Dpackaging=pom
  3. -Dfile=pom.xml -Durl=http://192.168.100.123:8081/repository/maven-snapshots/ -DrepositoryId=snapshots

常用的打包配置項

-D代表(Properties屬性)對外掛的目標引數進行配置

  1. -Dmaven.test.skip=true 跳過測試
  2. -Dfile.encoding 指定編碼格式
  3. -DgroupId
  4. -DartifactId
  5. -Dversion
  6. -Dpackaging 打包型別,pom或者jar
  7. -Dfile 某路徑下的pom檔案,
  8. -Durl 遠端Nexus私服倉庫地址
  9. -Dspring.profiles.active=prod 指定springboot的配置檔案

--setting 指定settings檔案,等同於-s,如果settings檔名為預設的settings.xml,可以省略不寫

完整的settings配置

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 http://maven.apache.org/xsd/settings-1.2.0.xsd">
  5. <localRepository>D:\apache-maven-3.6.1\repository-nexus</localRepository>
  6. <servers>
  7. <!-- 一般,私服倉庫的下載和部署是在pom.xml檔案中的repositories和distributionManagement元素中定義的,然而,一般類似於使用者名稱,密碼等資訊不應該在pom.xml檔案配置中,這些資訊可以配置在setting.xml中 -->
  8. <!-- maven設定私服對應的資訊:id、使用者、密碼,其中,id必須和distrubutionManagement的id相同 -->
  9. <!-- 私域環境maven倉庫,為了上傳jar或pom到私服倉庫 -->
  10. <server>
  11. <id>releases</id>
  12. <username>admin</username>
  13. <password>admin@nexus</password>
  14. </server>
  15. <server>
  16. <id>snapshots</id>
  17. <username>admin</username>
  18. <password>admin@nexus</password>
  19. </server>
  20. </servers>
  21. <mirrors>
  22. <!-- 私服和阿里雲混用,當nexus私服連線不上,才會走第二個,預設只有一個生效 -->
  23. <!-- id是唯一標識一個mirror,name節點名,url是官方的庫地址,mirrorOf代表了一個映象的替代位置,例如central就表示代替官方的中央庫 -->
  24. <!-- 雖然mirrors可以配置多個子節點,但是它只會使用其中的一個節點,即預設情況下配置多個mirror的情況下,只有第一個生效,只有當前一個mirror無法連線的時候,才會去找後一個 -->
  25. <mirror>
  26. <id>fp-nexus</id>
  27. <name>nexus maven</name>
  28. <url>http://192.168.100.99:8082/repository/maven-public/</url>
  29. <mirrorOf>central</mirrorOf>
  30. </mirror>
  31. <mirror>
  32. <id>alimaven</id>
  33. <name>aliyun maven</name>
  34. <url>https://maven.aliyun.com/repository/public/</url>
  35. <mirrorOf>central</mirrorOf>
  36. </mirror>
  37. </mirrors>
  38. <profiles>
  39. <profile>
  40. <id>jdk1.8</id>
  41. <activation>
  42. <activeByDefault>true</activeByDefault>
  43. <jdk>1.8</jdk>
  44. </activation>
  45. <properties>
  46. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  47. <maven.compiler.source>1.8</maven.compiler.source>
  48. <maven.compiler.target>1.8</maven.compiler.target>
  49. <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
  50. </properties>
  51. </profile>
  52. <profile>
  53. <id>nexus-profile</id>
  54. <repositories>
  55. <repository>
  56. <id>fp-nexus</id> <!--倉庫id,repositories可以配置多個倉庫,保證id不重複-->
  57. <url>http://192.168.100.99:8082/repository/maven-public/</url>
  58. <releases>
  59. <enabled>true</enabled>
  60. </releases>
  61. <snapshots>
  62. <enabled>true</enabled>
  63. </snapshots>
  64. </repository>
  65. </repositories>
  66. <pluginRepositories>
  67. <pluginRepository>
  68. <id>nexus</id>
  69. <name>Public Repositories</name>
  70. <url>http://192.168.100.99:8082/repository/maven-public/</url>
  71. </pluginRepository>
  72. </pluginRepositories>
  73. </profile>
  74. </profiles>
  75. <!-- 啟用配置 -->
  76. <activeProfiles>
  77. <activeProfile>jdk1.8</activeProfile>
  78. <activeProfile>nexus-profile</activeProfile>
  79. </activeProfiles>
  80. </settings>