1. 程式人生 > >使用nexus3 配置maven的私有倉庫

使用nexus3 配置maven的私有倉庫

<?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>${user.home}/.m2/repository</localRepository
> <interactiveMode>true</interactiveMode> <offline>false</offline> <pluginGroups> <pluginGroup>org.mortbay.jetty</pluginGroup> <pluginGroup>org.jenkins-ci.tools</pluginGroup> </pluginGroups> <servers> <server
> <id>nexus-releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>nexus-snapshots</id> <username>admin</username> <password
>admin123</password> </server> </servers> 這是Server的ID(不是登入進來的user),與Maven想要連線上的repository/mirror中的id元素相匹配。username,password:這兩個元素成對出現,表示連線這個server需要驗證username和password。在nexus中,預設管理員使用者名稱為admin,密碼為admin123。這裡使用兩個伺服器配置,分別對應release和snapshot。 <mirrors> <mirror> <id>nexus-releases</id> <mirrorOf>*</mirrorOf> <url>http://10.211.55.7:8081/repository/maven-public/</url> </mirror> <mirror> <id>nexus-snapshots</id> <mirrorOf>*</mirrorOf> <url>http://10.211.55.7:8081/repository/maven-snapshots/</url> </mirror> </mirrors> id,name:唯一的映象標識和使用者友好的映象名稱。id被用來區分mirror元素,並且當連線時候被用來獲得相應的證書。 mirrorOf:映象所包含的倉庫的Id。例如,指向Maven central倉庫的映象(http://repo1.maven.org/maven2/),設定這個元素為central。更多的高階對映例如repo1,repo2 或者*,!inhouse都是可以的。沒必要一定和mirror的id相匹配。在這裡mirrorOf項當然應該使用*,以表明是所有倉庫都會被映象到指定的地址。 url:映象基本的URL,構建系統將使用這個URL來連線倉庫。這裡應該添nexus倉庫的地址,地址可以在nexus倉庫頁面中找到。 <profiles> <profile> <id>nexus</id> <repositories> <repository> <id>nexus-releases</id> <url>http://nexus-releases</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> <repository> <id>nexus-snapshots</id> <url>http://nexus-snapshots</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>nexus-releases</id> <url>http://nexus-releases</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </pluginRepository> <pluginRepository> <id>nexus-snapshots</id> <url>http://nexus-snapshots</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </pluginRepository> </pluginRepositories> </profile> </profiles> profile項代表maven的基本配置。按照maven的一貫尿性,很多xml的配置項都會有一個配置項的複數形式作為父節點,以保證該配置項可以配置多個。在profiles項中,當然也可以配置多個profile,不過在這裡配一個就夠了。下面介紹profile項的各個子節點。 id:用來確定該profile的唯一標識。 repositories/repository:用以規定依賴包倉庫的相關資訊。在下屬節點中,id就不用多說了;URL是指倉庫地址,這裡使用偽造的地址,否則即使設定了mirror,maven也有可能會直接從中央倉庫下載包;releases和snapshots放在一塊說吧,這兩個節點下屬的enable節點用以規定對應的依賴包是否對當前策略有效,假如將snapshot的enable項設為disable,則不會下載snapshot包。 <activeProfiles> <activeProfile>nexus</activeProfile> </activeProfiles> </settings> 用以規定當前啟用的配置,將對應profile的ID加入到這一項即可使profile生效。