(1)Maven專案介紹
詳細介紹請移步官網:
http://maven.apache.org/what-is-maven.htm
我們需要知道Maven的主要介紹資訊:
1.Maven是屬于apache軟體基金會下一個開源免費的專案,是跨平臺的專案管理工具.
2.Maven采用了一種被稱之為Project Object Model (POM)概念來管理專案,所有的專案配置資訊都被定義在一個叫做POM.xml的檔案中.
3.主要服務于Java平臺的構建、依賴管理、專案管理,
4.Maven提供給開發人員構建一個完整的生命周期框架,使用標準的目錄結構和默認構建生命周期,
5.POM.xml該檔案用于管理:源代碼、組態檔、開發者的資訊和角色、問題追蹤系統、組織資訊、專案授權、專案的url、專案的依賴關系等等,該檔案是由開發維護,我們運維人員可以不用去關心,
那么至于 Maven 功能很強大,我們需要簡單了解下Maven 怎么樣使用java專案的打包 ; 解決java專案打包程序中的依賴關系;如何讓依賴關系的包下載的速度快,加快下載包的緩慢速度,因為默認有些包在國外服務器,這個檔案是運維方向圍繞著這個問題開展來的,
(2)部署Maven 【安裝在Jenkins服務器上即可】
官網: http://maven.apache.org/download.cgi 清華鏡像: https://mirrors.tuna.tsinghua.edu.cn/apache/maven/1.創建軟體包存放位置 [root@jenkins ~]# mkdir /server/scripts/tools [root@jenkins tools]# ll 總用量 8296 -rw-r--r-- 1 root root 8491533 11月 18 2015 apache-maven-3.3.9-bin.tar.gz 2.解壓軟體包 [root@jenkins tools]# tar xf apache-maven-3.3.9-bin.tar.gz 3.移動軟體到常用的目錄 [root@jenkins tools]# mv apache-maven-3.3.9 /usr/local/ bin/ games/ lib/ libexec/ share/ etc/ include/ lib64/ sbin/ src/ 4.去掉版本號做個連接 [root@jenkins tools]# ln -s /usr/local/apache-maven-3.3.9/ /usr/local/maven 5.設定環境變數,使其命令不用找、軟體包的位置 [root@jenkins tools]# echo "export PATH=/usr/local/maven/bin/:$PATH" >>/etc/profile 6.測驗命令并查看版本 [root@jenkins tools]# mvn -v Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00) Maven home: /usr/local/maven Java version: 1.8.0_181, vendor: Oracle Corporation Java home: /usr/java/jdk1.8.0_181-amd64/jre Default locale: zh_CN, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-229.el7.x86_64", arch: "amd64", family: "unix" maven的常用命令: [root@jenkins bin]# ll /usr/local/maven/bin/ 總用量 32 -rw-r--r-- 1 root root 230 11月 11 2015 m2.conf -rwxr-xr-x 1 root root 7383 11月 11 2015 mvn -rw-r--r-- 1 root root 6067 11月 11 2015 mvn.cmd -rwxr-xr-x 1 root root 1815 11月 11 2015 mvnDebug -rw-r--r-- 1 root root 1513 11月 11 2015 mvnDebug.cmd -rwxr-xr-x 1 root root 1843 11月 11 2015 mvnyjp
(3)使用maven進行打包
有的java專案是沒有直接打好包的 例如 jar war包等,一般會收到tar包,需要運維來進行打包,那么就用到下面的Maven打包工具, maven的引數和說明: package : 打包 原始碼編譯之后 使用jar格式打包,下載的依賴包在.m2內 clean : 清除前一次的編譯結果,恢復編譯原始環境,使用時清除在打包 validate : 驗證包的完整性 compile : 編譯專案原始碼 test : 測驗編譯后的原始碼 install : 把包安裝在本地,也可以用作好的包做其他的專案的依賴 deploy : 部署在集成或發布環境中完成,將最終的軟體包復制到遠程存盤倉庫,分享使用, mvn - v : 查看版本 相對應的java maven 和內核資訊 打包流程: 1.將原始碼包下載到本地,解壓縮 2.cd 原始碼內 3.mvn package #這里需要的是 下載的包默認是在國外 速度很慢,需要更改到國內或者搭建私服,常用的命名: [root@jenkins ~]# mvn package #這種方式打出的包默認是 jar包,默認下載maven的中央倉庫下載依賴和插件等,這里的速度會有點慢,因為是訪問的國外的地址拉倒本地,后續需要調整為私服方式,如果java代碼多的情況下 [root@jenkins ~]# mvn clean [root@jenkins ~]# mvn test [root@jenkins ~]# mvn install [root@jenkins ~]# mvn -v #查看版本 相對應的java maven 和內核資訊 Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00) Maven home: /usr/local/maven Java version: 1.8.0_181, vendor: Oracle Corporation Java home: /usr/java/jdk1.8.0_181-amd64/jre Default locale: zh_CN, platform encoding: UTF-8 OS name: "linux", version: "3.10.0-229.el7.x86_64", arch: "amd64", family: "unix" [root@jenkins ~]# ll target/ -rw-r--r-- 1 root root 3430 2020-3-19 23:39 world-1.0-SNAPSHOT.jar #這種的jar包 或者是war包 是可以直接發布到線上使用的, 默認是使用Tomcat環境發布,
(4)部署Maven私服nexus
解決慢的方式: 1.搭建私服2.使用阿里云的源 (java的專案不是特別多的情況,可以使用)
說明: 私服為的是解決使用Maven 為java打包的時候下載依賴處理起來較慢,因為默認走Maven的中央倉庫有些包再國外,下載起來會慢延長打包時間,
【1】先配置阿里云的Maven中央倉庫,修改Maven的主組態檔使其全域生效
1.找到主組態檔 [root@jenkins conf]# ll /usr/local/maven/conf/settings.xml #這個是主組態檔 總用量 16 drwxr-xr-x 2 root root 36 11月 11 2015 logging -rw-r--r-- 1 root root 10216 11月 11 2015 settings.xml -rw-r--r-- 1 root root 3649 11月 11 2015 toolchains.xml 2.拷貝原組態檔 [root@jenkins conf]# cp settings.xml settings.xml.bak [root@jenkins conf]# ls logging settings.xml settings.xml.bak toolchains.xml 3.修改組態檔在mirrors標簽下增加 全域有效: [root@jenkins conf]# vim settings.xml <mirror> <id>nexus-aliyun</id> <name>nexus-aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>*</mirrorOf> </mirror>
添加完配置之后不需要重啟服務,可以直接到專案內,重新執行 mvn package 進行打包,這樣就會去 阿里源的拉取缺少的包和依賴,執行的結果 也是很快的, 這里附錄配置截圖,免得搞混;配置
【2】 搭建私服nexus 默認埠8081
安裝包下載地址: https://www.sonatype.com/download‐oss‐sonatype 配置私服需要注意的是: 1. 使用java環境 2.生效規則 ① 在Maven的主組態檔中配置,全域生效 ② 在專案原始碼包內的pom.xml配置,區域生效,也就是對當前的這個專案有效,其他的專案無效 nexus機器上配置:1.上傳安裝所需包 [root@nexus tools]# ll 總用量 286068 -rw-r--r-- 1 root root 170023183 3月 8 18:47 jdk-8u181-linux-x64.rpm -rw-r--r-- 1 root root 122904706 3月 8 18:48 nexus-3.13.0-01-unix.tar.gz 2.java環境安裝 [root@nexus tools]# rpm -ivh jdk-8u181-linux-x64.rpm 警告:jdk-8u181-linux-x64.rpm: 頭V3 RSA/SHA256 Signature, 密鑰 ID ec551f03: NOKEY 準備中... ################################# [100%] 正在升級/安裝... 1:jdk1.8-2000:1.8.0_181-fcs ################################# [100%] Unpacking JAR files... tools.jar... plugin.jar... javaws.jar... deploy.jar... rt.jar... jsse.jar... charsets.jar... localedata.jar... 3.安裝命令 [root@nexus tools]# rpm ‐ivh jdk-8u181-linux-x64.rpm [root@nexus tools]# tar xf nexus-3.13.0-01-unix.tar.gz [root@nexus tools]# mv nexus‐3.13.0‐01 /usr/local/ [root@nexus tools]# ln ‐s /usr/local/nexus‐3.13.0‐01/ /usr/local/nexus [root@nexus tools]# /usr/local/nexus/bin/nexus start #啟動服務 WARNING: ************************************************************ WARNING: Detected execution as "root" user. This is NOT recommended! WARNING: ************************************************************ Starting nexus #正在啟動中 [root@nexus tools]# /usr/local/nexus/bin/nexus status WARNING: ************************************************************ WARNING: Detected execution as "root" user. This is NOT recommended! WARNING: ************************************************************ nexus is running. #啟動成功 4.默認埠是8081 [root@nexus tools]# netstat -lntp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN 29575/java tcp 0 0 127.0.0.1:40561 0.0.0.0:* LISTEN 29575/java tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1028/sshd tcp6 0 0 :::22 :::* LISTEN 1028/sshd
【3】登陸web界面
默認用戶:admin 默認密碼:admin123<1>. 查看基本資訊
這里面的盤容量不夠的話,可以擴容硬碟加大容量,<2>. 更改代理服務,轉換代理下載路徑
<3>.修改中央倉庫下載鏈接
修改代理也是去 阿里源 上面下載,和之前的配置 Maven的代理地址一樣,那么和之前的配置有什么區別呢? 可以這么理解為這個(私服 nexus) 就相當于我們常用的yum源, 原地址:https://repo1.maven.org/maven2/ 修改后的阿里云地址是 : http://maven.aliyun.com/nexus/content/groups/public<4>. 找到私服地址 ,之后添加到Maven的主組態檔中,用于下載java的依賴關系
<5>.私服地址如下,這個地址配到Maven中即可,
說明: 這樣就是實作了,Maven+私服nexus 解決java的打包依賴的關系了,當每次Maven執行打包java代碼的時候,第一次請求到nexus后,本地私服沒有的包會優先去阿里下載快取到本地,然后提供給Maven使用,在之后的話,打包本地有就不會去阿里下載,直接使用本地的依賴包解決java打包的依賴的關系了,請求順序見<6>這個圖, http://192.168.188.157:8081/repository/maven-public/<6>. 快取請求依賴關系順序
(5) 配置整合Maven+nexus私服
由于Jenkins和Maven在一臺主機上 192.168.188.154; nexus是另外的一臺主機 要搞清環境, 整合nexus+Maven的配置: 1. 登陸到Maven服務器,修改配置settings.xml主組態檔 [root@jenkins conf]# pwd /usr/local/maven/conf [root@jenkins conf]# ll 總用量 52 drwxr-xr-x 2 root root 36 11月 11 2015 logging -rw-r--r-- 1 root root 11620 3月 19 11:43 settings.xml -rw-r--r-- 1 root root 10399 3月 19 07:32 settings.xml.ailiyun.bak -rw-r--r-- 1 root root 11620 3月 19 11:44 settings.xml.all -rw-r--r-- 1 root root 10216 3月 19 04:08 settings.xml.bak -rw-r--r-- 1 root root 3649 11月 11 2015 toolchains.xml [root@jenkins conf]# vim settings.xml 將以下配置添加到主組態檔即可完成整合,之后就可以實作的是 java代碼打包,通過gitlib+Jenkins自動上線到web站點, 2. 找到<servers> 標簽,添加nexus默認的認證資訊 <server> <id>My-nexus-releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>My-nexus-snapshot</id> <username>admin</username> <password>admin123</password> </server> 3.找到<mirrors>標簽 ,添加鏡像 <mirror> <id>nexus</id> <name>nexus</name> <mirrorOf>*</mirrorOf> <url>http://192.168.188.157:8081/nexus/content/groups/public/</url> </mirror> 4.找到<profiles>標簽,添加倉庫資訊: <profile> <id>nexus</id> <repositories> <repository> <id>central</id> <url>http://192.168.188.157:8081/repository/maven-public/</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>central</id> <url>http://192.168.188.157:8081/repository/maven-public/</url> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </pluginRepository> </pluginRepositories> </profile> 5.找到activeProfiles 激活倉庫 <activeProfiles> <activeProfile>nexus</activeProfile> </activeProfiles>
(6)整合視圖,配置有出入的話,參考(5)的配置為準
1.>認證資訊
2.>nexus 私服地址
3.>添加倉庫配置
4.>激活配置倉庫
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/123981.html
標籤:Linux
