關於Maven配置多倉庫
阿新 • • 發佈:2018-12-16
maven配置多個倉庫
說明
maven的中央倉庫很強大,絕大多數的jar都收錄了。但也有未被收錄的。遇到未收錄的jar時,就會編譯報錯。 除了maven官方提供的倉庫之外,也有很多的倉庫。儘可能的將可信的倉庫(嗯,可信的倉庫!)新增幾個,彌補maven官方倉庫的不足。
多倉庫配置方式一:全域性多倉庫設定
全域性多倉庫設定,是通過修改maven的setting檔案實現的。 設定思路:在setting檔案中新增多個profile(也可以在一個profile中包含很多個倉庫),並激活(即使是隻有一個可用的profile,也需要啟用)。 修改maven的setting檔案,設定兩個倉庫(以此類推,可以新增多個):
<profiles> <profile> <!-- id必須唯一 --> <id>myRepository1</id> <repositories> <repository> <!-- id必須唯一 --> <id>myRepository1_1</id> <!-- 倉庫的url地址 --> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories> </profile> <profile> <!-- id必須唯一 --> <id>myRepository2</id> <repositories> <repository> <!-- id必須唯一 --> <id>myRepository2_1</id> <!-- 倉庫的url地址 --> <url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> </snapshots> </repository> </repositories> </profile> </profiles> <activeProfiles> <!-- 啟用myRepository1 --> <activeProfile>myRepository1</activeProfile> <!-- 啟用myRepository2 --> <activeProfile>myRepository2</activeProfile> </activeProfiles>
多倉庫配置方式二:在專案中新增多個倉庫
在專案中新增多個倉庫,是通過修改專案中的pom檔案實現的。 思路:在專案中pom檔案的repositories節點(如果沒有手動新增)下新增多個repository節點,每個repository節點是一個倉庫。 修改專案中pom檔案,設定兩個倉庫(以此類推,可以新增多個):
<repositories> <repository> <!-- id必須唯一 --> <id>jboss-repository</id> <!-- 見名知意即可 --> <name>jboss repository</name> <!-- 倉庫的url地址 --> <url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url> </repository> <repository> <!-- id必須唯一 --> <id>aliyun-repository</id> <!-- 見名知意即可 --> <name>aliyun repository</name> <!-- 倉庫的url地址 --> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> </repository> </repositories>
注:以上兩種方式的id值均不可以為“central”。
<?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">
<localRepository>/Users/yourhome/.m2/repository</localRepository>
<servers>
<server>
<id>snapshots</id>
<username>snapshot</username>
<password>deploy</password>
</server>
<server>
<id>releases</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
<mirrors>
<mirror>
<id>nexus</id>
<name>internal nexus repository</name>
<url>http://192.168.11.111:8080/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>*</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<profiles>
<profile>
<id>jdk-1.7</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.7</jdk>
</activation>
<properties>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<maven.compiler.compilerVersion>1.7</maven.compiler.compilerVersion>
</properties>
</profile>
<profile>
<id>downloadSources</id>
<properties>
<downloadSources>true</downloadSources>
<downloadJavadocs>true</downloadJavadocs>
</properties>
</profile>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<name>Nexus Central</name>
<url>http://192.168.11.111:8080/nexus/content/groups/public/</url>
<layout>default</layout>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>central</id>
<name>Nexus Central</name>
<url>http://192.168.11.111:8080/nexus/content/groups/public</url>
<layout>default</layout>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
<!-- 後期新增的-->
<profile>
<!-- id必須唯一 -->
<id>aliyun</id>
<repositories>
<repository>
<!-- id必須唯一 -->
<id>myRepository1_1</id>
<!-- 倉庫的url地址 -->
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<!-- 後期新增的-->
<activeProfile>aliyun</activeProfile>
<activeProfile>nexus</activeProfile>
<activeProfile>jdk-1.8</activeProfile>
<activeProfile>downloadSources</activeProfile>
</activeProfiles>
</settings>