日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Nexus入门【转】

發布時間:2024/9/5 编程问答 87 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nexus入门【转】 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、配置Maven

[root@meteor ~]# wget http://www-us.apache.org/dist/maven/maven-3/3.5.3/binaries/apache-maven-3.5.3-bin.tar.gz [root@meteor ~]# tar xfz apache-maven-3.5.3-bin.tar.gz -C /usr/java/ [root@meteor ~]# cd /usr/java/ [root@meteor java]# ln -s apache-maven-3.5.3 maven [root@meteor java]# vim /etc/profile (添加如下行) JAVA_HOME=/usr/java/latest MAVEN_HOME=/usr/java/maven PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL JAVA_HOME MAVEN_HOME [root@meteor java]# source /etc/profile (引用profile) [root@meteor java]# java -version java version "1.8.0_162" Java(TM) SE Runtime Environment (build 1.8.0_162-b12) Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode) [root@wlf1 java]# mvn -v Apache Maven 3.5.3 (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-25T03:49:05+08:00) Maven home: /usr/java/maven Java version: 1.8.0_162, vendor: Oracle Corporation Java home: /usr/java/jdk1.8.0_162/jre Default locale: en_US, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-693.17.1.el7.x86_64", arch: "amd64", family: "unix" [root@meteor java]#

?

?

maven命令小結
mvn compile 命令會根據 pom.xml 中定義的dependencies 依賴,去maven 中心下載相關的包并進行編譯,將編譯后的文件放在 target/classes/目錄中;
mvn test 命令會根據test目錄中定義的測試文件對類進行編譯測試,并把生成的測試報告存放在target/surefire-reports/目錄中;
mvn clean 命令清除target 目錄
mvn package 命令生成相關的jar包存放在 target目錄中
mvn install 命令將生成的*.jar包復制到本地庫中(~/.m2/repository/)

二、配置nexus
代碼依賴是通過Maven進行管理的,而Maven的私庫推薦使用的是Nexus。
Nexus是一個強大的Maven倉庫管理器,它極大地簡化了自己內部倉庫的維護和外部倉庫的訪問。利用Nexus你可以只在一個地方就能夠完全控制訪問 和部署在你所維護倉庫中的每個Artifact。Nexus是一套“開箱即用”的系統不需要數據庫,它使用文件系統加Lucene來組織數據。Nexus 使用ExtJS來開發界面,利用Restlet來提供完整的REST APIs,通過m2eclipse與Eclipse集成使用。Nexus支持WebDAV與LDAP安全身份認證。 Nexus分為專業收費的Nexus Pro與免費的Nexus OSS兩個版本。本文以Nexus OSS為主體。
1、安裝過程

[root@meteor ~]# wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz [root@meteor ~]# tar xfz nexus-3.11.0-01-unix.tar.gz -C /usr/local/ [root@meteor ~]# cd /usr/local/ [root@meteor local]# ln -s nexus-3.11.0-01 nexus [root@meteor local]# cd nexus [root@meteor nexus]# vim /etc/profile JAVA_HOME=/usr/java/latest MAVEN_HOME=/usr/java/maven PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar RUN_AS_USER=rootexport PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL JAVA_HOME MAVEN_HOME RUN_AS_USER CLASSPATH [root@meteor nexus]# source /etc/profile [root@meteor nexus]# bin/nexus start WARNING: ************************************************************ WARNING: Detected execution as "root" user. This is NOT recommended! WARNING: ************************************************************ Starting nexus [root@meteor nexus]# lsof -i:8081 (需要等待一會,port啟的較慢) COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 2892 root 872u IPv4 17383 0t0 TCP *:tproxy (LISTEN)

?

?

默認端口是tcp 8081; 默認管理員用戶名和密碼是admin/admin123。在瀏覽器中訪問如下所示:

登錄后可以在Server administration and configuration --> Repositories中查看到各種倉庫,例public庫如下所示:

2、基本操作
(1) Nexus的倉庫分為以下幾種:
proxy : 代理倉庫,對遠程倉庫的本地代理。
hosted : 本地倉庫。
virtual:影子倉庫,對proxy或hosted倉庫的映射。
group:倉庫組,作為邏輯倉庫組對外
邏輯關系 如下:

(2) 如果需要對repository的配置進行修改,如 central,Apache Snapshots,可參考如下操作:
點擊左側 repositories,右側打開倉庫列表。
選擇倉庫 central,可點rebuild index等操作,nexus 3.x保持默認即可。

(3) 新建hosted類型的倉庫,如下所示:

然后選擇“maven hosted”,如下所示:

輸入Repositories 名稱,版本策略選擇“Release”,Layout pollcy選擇"Strict" ,Deployment pollcy選擇"Allow redeploy",如下所示:

(4) 新建proxy類型的倉庫(工廠)
輸入Repositories name ,并輸入proxy 的目標地址,如下所示:

(5) 將自定義的proxy類型repository 添加到maven-public group中
打開maven-public repositories ,并選擇相關的members ,如下所示:

最終各庫狀態如下:

3、調用 Repository
(1) 可以在java各項目的pom.xml文件中定義repository的url,從而調用 以上各repositories ,格式如下所示:

<repositories><repository><id> repo_id </id><name> repo_name </name><url> repo_url </url></repository>...... <repositories>

(2) 如果有多個工廠(倉庫),就需要定義多段<repository>,指定多個<url>。為了簡化操作,可以在nexus中將多個Repository加入一個 Repo-Group,然后在pom.xml文件中指定一個Repo-Group的url即可獲得多個Repository的依賴包。如下所示:

<repositories><repository><id>nexus</id><name>nexus_repo</name><url>http://localhost:8081/repository/maven-public/</url><releases><enabled> true</enabled></releases><snapshots><enabled> true</enabled></snapshots></repository></repositories>

(3 ) 如果用戶新創建一個項目,或更換一個新的workspace,就需要在新的pom.xml文件中重新指定respository,所以不推薦這種方式。推薦方法:在maven 的settings.xml文件中指定nexus倉庫地址,如下所示:

<profiles><profile><id>nexusProfile</id><repositories> <repository><id>nexus</id><name>nexus_repo</name><url>http://localhost:8081/repository/maven-public/</url><releases><enabled> true</enabled></releases><snapshots><enabled> true</enabled></snapshots></repository></repositories></profile></profiles>

以上定義的profile必須在settings.xml文件激活才能生效,如下所示:

<activeProfiles><activeProfile>nexusProfile</activeProfile></activeProfiles>

(4) 以上方法:如果把nexus stop ,它將跳過nexus,直接到maven的中央工廠(倉庫)去下載。如果希望只有nexus才可以到中央工廠(倉庫)下載,就需要在settings.xml文件中配置mirror,如下所示:

<mirrors><mirror><id>nexusMirror</id><mirrorOf>*</mirrorOf><name>all repositoies for this Mirror.</name><url>http://localhost:8081/repository/maven-public/</url></mirror> </mirrors>

為了可以在central repository 中下載snapshot 的依賴,需要添加 如下的profile:

<profile><id>centralProfile</id><repositories><repository><id>central</id><name>Central Repository</name><url>https://*</url><layout>default</layout><snapshots><enabled>true</enabled></snapshots></repository></repositories> </profile>

并將之前的激活的profile修改為centralProfile,如下所示:

<activeProfiles><activeProfile>centralProfile</activeProfile></activeProfiles>

(5) 為了讓各項目在mvn deploy時可以將*.jar包push到hosted類型的本地repository中,首先需要在項目的pom.xml文件中定義push的target repository,如下所示:

<distributionManagement><repository><id>user-release</id><name>release</name><url>http://localhost:8081/repository/maven-releases/</url></repository><snapshotRepository><id>user-snapshot</id><name>snapshot</name><url>http://localhost:8081/repository/maven-snapshots/</url></snapshotRepository></distributionManagement>

圖例如下:

然后在maven的setting.xml文件 中定義 user-release和user-snapshot所對應的用戶名、密碼,如下所示:

<servers><server><id>user-release</id><username>admin</username><password>admin123</password></server><server><id>user-snapshot</id><username>admin</username><password>admin123</password></server></servers>

注意:一定要保證snapshot的repository 的 "Allow redeploy"屬性,如下所示:

較完整的maven配置文件settings.xml文件 內容如下
vim /usr/java/maven/conf/settings.xml

# servers 內添加用戶/密碼, 以便之后可以向releases/snapshots本地倉庫(工廠)push jar 包<server><id>releases</id><username>admin</username><password>admin123</password></server><server><id>snapshots</id><username>admin</username><password>admin123</password></server> # mirrors增加私庫<mirror><!--This sends everything else to /public --><id>nexus</id><mirrorOf>*</mirrorOf><url>http://192.168.20.221:8081/repository/maven-public/</url></mirror><mirror><id>nexus2</id><mirrorOf>snapshots</mirrorOf><url>http://192.168.20.221:8081/repository/maven-public/</url></mirror> # 一定要配置為 <mirrorOf>*</mirrorOf>,即讓所有的倉庫都先經過私庫,這樣可以將遠程下載的包緩存到本地 <profile> <id>nexus</id> <!--Enable snapshots for the built in central repo to direct --> <!--all requests to nexus via the mirror --> <repositories> <repository> <id>central</id> <url>http://192.168.20.221:8081/repository/maven-central/</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>central</id> <url>http://192.168.20.221:8081/repository/maven-central/</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </pluginRepository> </pluginRepositories> </profile> <activeProfiles> <activeProfile>nexus</activeProfile> </activeProfiles> #以上定義 profile,最后activeProfile 激活定義的profile #在profile中允許 訪問releases/snapshots倉庫 (工廠)

提示:
Maven安裝目錄下的 /conf/settings.xml 起全局控制作用。
用戶目下的Maven配置文件,即:~/.m2/settings.xml 僅對當前用戶用效

關于Maven的mirror:
mirrors可以配置多個mirror,每個mirror有id,name,url,mirrorOf屬性,id是唯一標識一個mirror就不多說了,name貌似沒多大用,相當于描述,url是官方的庫地址,mirrorOf代表了一個鏡像的替代位置,例如central就表示代替官方的中央庫。
鏡像庫并不是一個分庫的概念,就是說當a.jar在第一個mirror中不存在的時候,maven會去第二個mirror中查詢下載。但事實卻不是這樣,當第一個mirror中不存在a.jar的時候,并不會去第二個mirror中查找,甚至于,maven根本不會去其他的mirror地址查詢。
maven的mirror是鏡像,而不是“分庫”,只有當前一個mirror無法連接的時候,才會去找后一個,類似于備份和容災。
mirror也不是按settings.xml中寫的那樣的順序來查詢的。所謂的第一個并不一定是最上面的那個。當有id為B,A,C的順序的mirror在mirrors節點中,maven會根據字母排序來指定第一個,所以不管怎么排列,一定會找到A這個mirror來進行查找,當A無法連接,出現意外的情況下,才會去B查詢。

在Maven工程的pom.xml中:
當發布到屬性為snapshot的倉庫時,工程自述說明小節中的 <version>,需要帶上后綴 SNAPSHOT,否則會當成 release 發布, 會收到 400 Bad Request 錯誤。
發布配置中的 <url> 地址一定要區分清楚。并在 release 與 snapshot 倉庫里配置不同的地址。此外,id、name 要與Nexus中倉庫的配置 configuration 中的內容一致。
Nexus OSS的倉庫屬性:
snapshot : 快照版本,即不穩定的頻繁發布場所,常用于團隊成員快速聯調。
release : 正式版本,即穩定包所在場所

maven-public倉庫地址 訪問如下:

?

轉自

Nexus入門-WorkNote-51CTO博客 https://blog.51cto.com/caiyuanji/2117120

轉載于:https://www.cnblogs.com/paul8339/p/11365155.html

總結

以上是生活随笔為你收集整理的Nexus入门【转】的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 97在线观看| 亚洲成人福利在线 | 亚瑟av| 91成人在线观看喷潮蘑菇 | 毛片一区二区三区 | 少妇视频 | 国精品人妻无码一区二区三区喝尿 | 中文字幕无码精品亚洲35 | 性一交一乱一伧老太 | 日本xxxwww| 五月天婷婷伊人 | 亚洲va中文字幕 | 国产小视频免费在线观看 | 激情爱爱网站 | 国产无套丰满白嫩对白 | av成人在线观看 | 亚洲尤物视频 | 三级做爰在线观看视频 | 嫩草影院黄 | 一本色道久久亚洲综合精品蜜桃 | 国产精品一区二三区 | 天海翼一区二区三区 | www.99av | 深田咏美中文字幕 | 激情网站在线观看 | 夜夜嗨av一区二区三区免费区 | av日韩一区 | 少妇激情一区二区三区 | 看一级黄色 | 善良的老师伦理bd中字 | 牛牛精品一区二区 | 五月天激情视频在线观看 | 四虎免费网址 | 一区二区三区中文字幕 | 美国黄色一级视频 | 天天躁日日摸久久久精品 | 国产无遮挡又黄又爽免费视频 | 欧美成人三级在线观看 | 可以免费看的毛片 | 中国女人特级毛片 | 毛片毛片毛片毛片毛片毛片毛片毛片 | 九九综合网 | 一区二区精品久久 | 精品无码一区二区三区 | 91人妻一区二区三区 | 日本三级影院 | 欧美视频一区二区在线 | 99国产免费 | 顶级嫩模啪啪呻吟不断好爽 | 国产又爽又黄视频 | 高清性爱视频 | 爱爱视频天天干 | 亚洲欧洲日本在线 | 日韩av一区在线观看 | 成人亚洲精品 | 口舌奴vk | 精品人人妻人人澡人人爽牛牛 | 天天爽夜夜爽一区二区三区 | 免费av动漫| 日本精品三级 | 在线人成 | 久草视频这里只有精品 | 日本黄页视频 | 好吊妞一区二区三区 | 奇米网狠狠干 | 久久久噜噜噜久久中文字幕色伊伊 | 亚洲成a人v| 新亚洲天堂 | 看国产一级片 | 久久久精品 | 亚洲三级中文字幕 | 日本做爰全过程免费看 | 久久亚洲综合国产精品99麻豆精品福利 | 精品无码三级在线观看视频 | 日韩电影在线观看中文字幕 | 黑人巨大xxxxx性猛交 | 国产精品欧美日韩 | 91成人精品视频 | 亚洲狼人在线 | 97人妻天天摸天天爽天天 | 青青在线视频观看 | 成人毛片在线观看 | 韩国一区视频 | 亚a在线| 三级av毛片| 天堂在线视频免费观看 | 久在线观看 | 激情小说五月天 | 一区二区三区精彩视频 | 奇米成人影视 | 黄色a毛片 | 国产乱码精品一区二区三区不卡 | 欧美一区二区三区激情 | 官场艳妇疯狂性关系 | 波多野吉衣av无码 | 波多野结衣免费视频观看 | 激情综合五月天 | 91精品视频国产 | www.555国产精品免费 |