linux下安裝nexus repository及Intellij Idea集成私有maven
前段日子公司搞java項目,使用nexus repository搭建了私有maven庫,現在把原來的私有nuget也遷到nexus repository上了,下面介紹下搭建流程:
https://help.sonatype.com/display/NXRM3/Download
官方下載tar包 當前 nexus-3.8.0-02-unix.tar.gz
使用xshell的rz命令上傳到linux服務器
解壓縮文件:tar -zxvf nexus-3.8.0-02-unix.tar.gz (會解壓出兩個文件夾)
進入解壓後文件 cd nexus-3.8.0-02
編輯配置文件:vi etc/nexus-default.properties
配置文件中更改端口號(默認端口號8081):
application-port=5006
(如果更改工作路徑,修改nexus-work,如 nexus-work=${user.home}/sonatype-work/nexus)
進入bin文件夾:cd bin
啟動nexus服務: ./nexus start
查看服務狀態: ./nexus status
訪問地址ip:5006,出現下面界面:
默認用戶:admin admin123
登陸後可以創建不同類型倉儲,關於nexus repository倉儲說明如下:
一、component name解釋:
(1)maven-central:maven中央庫,默認從https://repo1.maven.org/maven2/拉取jar
(2)maven-releases:私庫發行版jar
(3)maven-snapshots:私庫快照(調試版本)jar
(4)maven-public:倉庫分組,把上面三個倉庫組合在一起對外提供服務,在本地maven基礎配置settings.xml中使用。
二、Nexus默認的倉庫類型有以下四種:
(1)group(倉庫組類型):又叫組倉庫,用於方便開發人員自己設定的倉庫
(2)hosted(宿主類型):內部項目的發布倉庫(內部開發人員,發布上去存放的倉庫)
(3)proxy(代理類型):從遠程中央倉庫中尋找數據的倉庫(可以點擊對應的倉庫的Configuration頁簽下Remote Storage Location屬性的值即被代理的遠程倉庫的路徑)
(4)virtual(虛擬類型):虛擬倉庫
三、Policy(策略):表示該倉庫為發布(Release)版本倉庫還是快照(Snapshot)版本倉庫
四、Public Repositories下的倉庫:
(1)3rd party: 無法從公共倉庫獲得的第三方發布版本的構件倉庫,即第三方依賴的倉庫,這個數據通常是由內部人員自行下載之後發布上去
(2)Apache Snapshots: 用了代理ApacheMaven倉庫快照版本的構件倉庫
(3)Central: 用來代理maven中央倉庫中發布版本構件的倉庫
(4)Central M1 shadow: 用於提供中央倉庫中M1格式的發布版本的構件鏡像倉庫
(5)Codehaus Snapshots: 用來代理CodehausMaven 倉庫的快照版本構件的倉庫
(6)Releases: 內部的模塊中release模塊的發布倉庫,用來部署管理內部的發布版本構件的宿主類型倉庫;release是發布版本
(7)Snapshots:發布內部的SNAPSHOT模塊的倉庫,用來部署管理內部的快照版本構件的宿主類型倉庫;snapshots是快照版本,也就是不穩定版本
所以自定義構建的倉庫組代理倉庫的順序為:Releases,Snapshots,3rd party,Central。也可以使用oschina放到Central前面,下載包會更快。
Intellij Idea 集成私有maven:
找到maven的配置文件setting.xml( 在idea的 File 》Setting 中 )操作如圖:
( 如果上圖路徑下沒有配置setting.xml文件,可以在idea安裝過路徑的plugins\maven\lib\maven3\conf中拷貝一個過去,
本人電腦在C:\Program Files\JetBrains\IntelliJ IDEA 2017.3.2\plugins\maven\lib\maven3\conf中 )
setting.xml中增加如下配置:
<servers>
<server>
<id>nexus</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
使用idea打開或新建項目,在項目的pom.xml文件中增<project></project>節點下增加如下配置:
//代理repository
<repositories>
<repository>
<id>maven-central</id>
<name>maven-central</name>
<url>http://ip:port/repository/maven-central/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
需要將源碼上傳到maven的話,在項目的pom.xml文件中增<project></project>節點下增加如下配置:
//jar包發布repository
<distributionManagement>
<snapshotRepository>
<id>nexus</id>
<name>Nexus Snapshot</name>
<url>http://ip:port/repository/maven-snapshots/</url>
</snapshotRepository>
<repository>
<id>nexus</id>
<name>Nexus Release</name>
<url>http://ip:port/repository/maven-releases/</url>
</repository>
//網站信息
<!--<site>
<id>nexus</id>
<name>Nexus Sites</name>
<url>dav:http://ip:port/repository/maven-snapshots/</url>
</site>-->
</distributionManagement>
<build>
<plugins>
//上傳源碼插件
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>2.1</version>
<configuration>
<attach>true</attach>
</configuration>
<executions>
<execution>
<phase>compile</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
註意:
setting.xml和pom.xml中的id節點值必須一致,
pom.xml頭部文件中version節點的值中含有SNAPSHOT時maven會認為是快照版本,發布到maven-snapshots倉庫,
不含則認為是release版本,發布到maven-releases倉庫
配置完成後就可以使用idea發布jar到私有倉庫或者拉取jar了,打開idea下maven工具方式如如下圖:
添加Maven Project視圖後在idea右側會顯示工具界面,點擊相應按鈕即可完成操作,如圖:
PS:idea創建maven項目時更改默認jdk版本為1.8方法如下:
修改maven的setting.xml文件,添加如下:
<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>
重啟idea後生效。
linux下安裝nexus repository及Intellij Idea集成私有maven