Maven+Nexus環境實現Java打包環境部署

(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項目打包過程當中的依賴關係;如何讓依賴關係的包下載的速度快,加快下載包的緩慢速度,由於默認有些包在國外服務器,這個文檔是運維方向圍繞着這個問題開展來的。
 
環境準備:
192.168.188.154    Jenkins
192.168.188.157    nexus / git

(2)部署Maven  【安裝在Jenkins服務器上便可】

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.001 /usr/local/ [root@nexus tools]# ln ‐s /usr/local/nexus‐3.13.001/ /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.>激活配置倉庫

相關文章
相關標籤/搜索