單獨配置華為雲 mirror
準備工作使用前請確保您已安裝JDK及Maven。如果您尚未安裝,可以點擊下面鏈接下載安裝:JDK官網下載地址:
https://www.oracle.com/technetwork/java/javase/downloads/index.htmlMaven加速地址:https://repo.huaweicloud.com/apache/maven/maven-3/
使用說明點擊此處 下載settings.xml文件,覆蓋<Maven安裝目錄>/conf/settings.xml文件即可。如果您不想覆蓋配置文件,可以手動在settings.xml文件中的mirrors節點中添加如下內容:
<mirror>
<id>huaweicloud</id>
<mirrorOf>*</mirrorOf>
<url>https://repo.huaweicloud.com/repository/maven/</url>
</mirror>
相關網址Maven官方地址:
https://maven.apache.orgMaven搜索地址:http://mvnrepository.com
單獨配置華為私有庫依賴
1.在mirrors節點中添加如下配置:(可選,使用華為開源鏡像站加速下載開源組件)
<mirror>
<id>z_mirrors</id>
<mirrorOf>*,!releases,!snapshots</mirrorOf>
<url>https://repo.huaweicloud.com/repository/maven/</url>
</mirror>
2.在servers節點中添加如下配置:(password從下載的settings.xml文件中獲取)
<server>
<id>releases</id>
<username>088dbeef3980f4050f6fc007779eab60_088dbef03980f2d21f98c007dcbde04f</username>
<password>************</password>
</server>
<server>
<id>snapshots</id>
<username>088dbeef3980f4050f6fc007779eab60_088dbef03980f2d21f98c007dcbde04f</username>
<password>************</password>
</server>
3.在profiles節點中添加如下配置
<profile>
<id>MyProfile</id>
<repositories>
<repository>
<id>releases</id>
<url>https://devrepo.devcloud.cn-north-4.huaweicloud.com/07/nexus/content/repositories/088dbeef3980f4050f6fc007779eab60_1_0/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>snapshots</id>
<url>https://devrepo.devcloud.cn-north-4.huaweicloud.com/07/nexus/content/repositories/088dbeef3980f4050f6fc007779eab60_2_0/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
單獨配置阿里雲 mirror
打開maven的配置文件(windows機器一般在maven安裝目錄的conf/settings.xml),在<mirrors></mirrors>標籤中添加mirror子節點:
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里雲公共倉庫</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
如果想使用其它代理倉庫,可在<repositories></repositories>節點中加入對應的倉庫使用地址。以使用spring代理倉為例:
<repository>
<id>spring</id>
<url>https://maven.aliyun.com/repository/spring</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
單獨配置阿里雲效私有庫依賴
1.在mirrors節點中添加如下配置:(可選,使用阿里開源鏡像站加速下載開源組件)
<mirror>
<id>mirror</id>
<mirrorOf>!rdc-releases,!rdc-snapshots</mirrorOf>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
- 在settings.xml中添加認證信息
在Maven的的默認settings.xml中找到servers的部分,添加一個server配置如下。
<servers>
<server>
<id>rdc-releases</id>
<username>***</username>
<password>******</password>
</server>
<server>
<id>rdc-snapshots</id>
<username>***</username>
<password>******</password>
</server>
</servers>
3.在profiles節點添加如下配置, 其中 repository 是順序搜索下載包的.
<profile>
<id>rdc-private-repo</id>
<repositories>
<repository>
<id>rdc-releases</id>
<url>https://repo.rdc.aliyun.com/repository/78947-release-CfzLQ7/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>rdc-snapshots</id>
<url>https://repo.rdc.aliyun.com/repository/78947-snapshot-XtuBsZ/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>rdc-releases</id>
<url>https://repo.rdc.aliyun.com/repository/78947-release-CfzLQ7/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>rdc-snapshots</id>
<url>https://repo.rdc.aliyun.com/repository/78947-snapshot-XtuBsZ/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
- 製品上傳配置
配置好了settings.xml後,在代碼庫根目錄下的pom.xml加入以下配置:
<!-- 需要發布二方包 則打開下列的配置 -->
<distributionManagement>
<repository>
<id>rdc-releases</id>
<url>https://repo.rdc.aliyun.com/repository/78947-release-CfzLQ7/</url>
</repository>
<snapshotRepository>
<id>rdc-snapshots</id>
<url>https://repo.rdc.aliyun.com/repository/78947-snapshot-XtuBsZ/</url>
</snapshotRepository>
</distributionManagement>
然後運行以下命令即可將製品推送到私有倉庫中:
$ mvn clean deploy -DskipTests
Maven中-DskipTests和-Dmaven.test.skip=true的區別在使用mvn package進行編譯、打包時,Maven會執行src/test/java中的JUnit測試用例,有時為了跳過測試,會使用參數-DskipTests和-Dmaven.test.skip=true,這兩個參數的主要區別是:
-DskipTests,不執行測試用例,但編譯測試用例類生成相應的class文件至target/test-classes下。-Dmaven.test.skip=true,不執行測試用例,也不編譯測試用例類。
關於 mirror 的說明
雖然mirrors可以配置多個子節點,但是它只會使用其中的一個節點,即默認情況下配置多個mirror的情況下,只有第一個生效,只有當前一個mirror無法連接的時候,才會去找後一個;而我們想要的效果是:當a.jar在第一個mirror中不存在的時候,maven會去第二個mirror中查詢下載,但是maven不會這樣做!
關於 properties 的說明
properties作用:對應profile的擴展屬性列表。maven屬性和ant中的屬性一樣,可以用來存放一些值。這些值可以在pom.xml中的任何地方使用標記${X}來使用,這裡X是指屬性的名稱。屬性有五種不同的形式,並且都能在settings.xml文件中訪問。
<!--
1. env.X: 在一個變量前加上"env."的前綴,會返回一個shell環境變量。例如,"env.PATH"指代了$path環境變量(在Windows上是%PATH%)。
2. project.x:指代了POM中對應的元素值。例如: <project><version>1.0</version></project>通過${project.version}獲得version的值。
3. settings.x: 指代了settings.xml中對應元素的值。例如:<settings><offline>false</offline></settings>通過 ${settings.offline}獲得offline的值。
4. Java System Properties: 所有可通過java.lang.System.getProperties()訪問的屬性都能在POM中使用該形式訪問,例如 ${java.home}。
5. x: 在<properties/>元素中,或者外部文件中設置,以${someVar}的形式使用。
-->
<properties>
<user.install>${user.home}/our-project</user.install>
</properties>
配置了 阿里和華為雲配置的綜合案例
<?xml version="1.0" encoding="UTF-8"?>
<settings
xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<pluginGroups></pluginGroups>
<proxies></proxies>
<servers>
<!-- 華為 rds -->
<!-- id 需要和 settings profiles.profile.repository.id 和 project 下 distributionManagement.repository.id 保持一致, -->
<server>
<id>huawei-rdc-repository</id>
<username>****yourname***</username>
<password>****yourpassword******</password>
</server>
<server>
<id>huawei-rdc-snapshots-repository</id>
<username>****yourname***</username>
<password>****yourpassword******</password>
</server>
<!-- 阿里 rds -->
<server>
<id>aliyun-rdc-repository</id>
<username>****yourname***</username>
<password>****yourpassword******</password>
</server>
<server>
<id>aliyun-rdc-snapshots-repository</id>
<username>****yourname***</username>
<password>****yourpassword******</password>
</server>
<!-- 寶利 rds -->
<server>
<id>poly-rdc-repository</id>
<username>admin</username>
<password>ncl@1234</password>
</server>
</servers>
<mirrors>
<mirror>
<id>huaweiMirror</id>
<name>華為雲公共倉庫</name>
<mirrorOf>central</mirrorOf>
<url>https://repo.huaweicloud.com/repository/maven/</url>
</mirror>
<mirror>
<id>aliyunMirror</id>
<name>阿里雲公共倉庫</name>
<mirrorOf>central</mirrorOf>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>default-profile</id>
<properties>
<my.repository.url>https://maven.aliyun.com/nexus/content/groups/public</my.repository.url>
</properties>
<repositories>
<repository>
<id>central</id>
<url>${my.repository.url}</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>snapshots</id>
<url>${my.repository.url}</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<url>${my.repository.url}</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>snapshots</id>
<url>${my.repository.url}</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>huawei-profile</id>
<properties>
<my.releases.url>https://devrepo.devcloud.cn-north-4.huaweicloud.com/07/nexus/content/repositories/088dbeef3980f4050f6fc007779eab60_1_0/</my.releases.url>
<my.snapshots.url>https://devrepo.devcloud.cn-north-4.huaweicloud.com/07/nexus/content/repositories/088dbeef3980f4050f6fc007779eab60_2_0/</my.snapshots.url>
</properties>
<repositories>
<repository>
<id>huawei-rdc-repository</id>
<url>${my.releases.url}</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>huawei-rdc-snapshots-repository</id>
<url>${my.snapshots.url}</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>huawei-rdc-repository</id>
<url>${my.releases.url}</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>huawei-rdc-snapshots-repository</id>
<url>${my.snapshots.url}</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>aliyun-profile</id>
<properties>
<my.releases.url>https://repo.rdc.aliyun.com/repository/78947-release-CfzLQ7/</my.releases.url>
<my.snapshots.url>https://repo.rdc.aliyun.com/repository/78947-snapshot-XtuBsZ/</my.snapshots.url>
</properties>
<repositories>
<repository>
<id>aliyun-rdc-repository</id>
<url>${my.releases.url}</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>aliyun-rdc-snapshots-repository</id>
<url>${my.snapshots.url}</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>aliyun-rdc-repository</id>
<url>${my.releases.url}</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>aliyun-rdc-snapshots-repository</id>
<url>${my.snapshots.url}</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>poly-profile</id>
<repositories>
<!-- <repository><id>poly-repository</id><name>private maven</name><url>http://10.1.103.106:9080/repository/maven-public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></repository> -->
</repositories>
<pluginRepositories>
<!-- <pluginRepository><id>poly-repository</id><name>private maven</name><url>http://10.1.103.106:9080/repository/maven-public/</url><releases><enabled>true</enabled></releases><snapshots><enabled>true</enabled></snapshots></pluginRepository> -->
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>default-profile</activeProfile>
<!-- <activeProfile>huawei-profile</activeProfile> -->
<activeProfile>aliyun-profile</activeProfile>
<!-- <activeProfile>poly-profile</activeProfile> -->
</activeProfiles>
</settings>
相關地址
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/228115.html
微信掃一掃
支付寶掃一掃