1. 程式人生 > >Maven建立並管理Web專案(上傳Web專案的API的JAR到Nexus 私服上)

Maven建立並管理Web專案(上傳Web專案的API的JAR到Nexus 私服上)

目錄

     1.簡介

     2.安裝Eclipse Maven外掛

     3.用Eclipse建立Maven Web專案

     4.配置settings.xml 檔案並下載專案依賴的JAR,並上傳Web專案的api的JAR到Nexus 私服

   1.簡介

      Maven、Nexus 私服的安裝和配置和Maven的優點Maven和 Sonatype Nexus私服的安裝、配置及使用入門已經有介紹了,這裡就不在介紹了,今天我們要介紹Maven建立並管理Web專案,方便我們專案的開發和管理。

  2.安裝Eclipse Maven外掛

      我們要在Eclipse開發Maven專案,所以我們要安裝Maven外掛,我們這裡通過

線上安裝,通過Eclipse的Help-->Install New Software,在http 地址:http://m2eclipse.sonatype.org/sites/m2e,把選項勾上,然後下載安裝,完成之後重啟 Eclipse 即可。

    

   3.用Eclipse建立Maven Web專案

       我們這邊建立Maven Web專案,建立了一個Parent專案然後裡面包含了一個api(包含Entry和services介面)和一個 console(控制層和檢視、services實現等)

      第一步我們先建立Parent專案,右擊New-->Maven Project

       

       這邊Packaging選擇 pom

        

   第二步我們建立JAR型別和WAR型別(Packaging選擇JAR型別和WAR型別

      

這裡我們建立好Maven Web專案 專案目錄是這樣的

   

 4.配置setting.xml 檔案並下載專案依賴的JAR,並上傳Web專案的api的JAR到Nexus 私服

   上面建立好專案後,為我們實現配置setting.xml 檔案並下載專案依賴的JAR,並上傳Web專案的api的JAR到Nexus 私服建立好條件,接下去講是重點之一

   第一步,我們要配置settings.xml 檔案,因為settings.xml 告訴要到哪個Nexus 私服所依賴JAR或者上傳到Nexus 私服上的,這個配置

settings.xml 只是一部分,我們還要配置pom.xml檔案。

      配置settings.xml 檔案,首先在Eclipse上配置關聯我們自己的settings.xml檔案

          

       settings.xml檔案

<?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>E:\nexus\.m2\repository</localRepository>
  
    <pluginGroups>
      

        <pluginGroup>org.mortbay.jetty</pluginGroup>
    </pluginGroups>
    <proxies>
    </proxies>
    <servers>
        <server>
            <!--maven釋出庫的id-->
            <id>releases</id>
            <username>admin</username>
            <password>admin</password>
        </server>

        <server>
            <!--maven快照庫的id-->
            <id>snapshots</id>
            <username>admin</username>
            <password>admin</password>
        </server>
       
    </servers>
    
    <mirrors>
      
		<mirror>
			<id>central.m2</id>
			<name>one of the central mirrors</name>
			<url>http://192.168.74.129:8081/nexus/content/groups/public</url>
			<mirrorOf>*</mirrorOf>
		</mirror>
    </mirrors>
   
    <profiles>
       
        <profile>
            <id>dev</id>
			 <activation>
				<activeByDefault>true</activeByDefault>
				<jdk>1.6</jdk>
			</activation>			
			<properties>
				<!-- 編譯器相關資訊 -->
				<maven.compiler.source>1.6</maven.compiler.source>
				<maven.compiler.target>1.6</maven.compiler.target>
				<maven.compiler.compilerVersion>1.6</maven.compiler.compilerVersion>
			</properties>
            <repositories>
                <repository>
                    <id>public</id>
                    <name>Public Repositories</name>
                    <url>http://192.168.74.129:8081/nexus/content/groups/public</url>
                    <layout>default</layout>
                    <snapshots>
                        <checksumPolicy>fail</checksumPolicy>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots>
                    <releases>
                        <checksumPolicy>fail</checksumPolicy>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </releases>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>public</id>
                    <name>Public Repositories</name>
                    <url>http://192.168.74.129:8081/nexus/content/groups/public/</url>
                    <layout>default</layout>
                </pluginRepository>
           </pluginRepositories>
        </profile>   
    </profiles>
    <activeProfiles>
        <activeProfile>dev</activeProfile>
    </activeProfiles>
</settings>

說明:

    1.localRepository 指定本地倉庫儲存路徑,從Nexus 私服上下載JAR下來,儲存的地方。

    2.配置遠端倉庫列表 ;id:遠端倉庫唯一標識; name:遠端倉庫名稱 url:遠端倉庫URL。 

       3.enabled:是否使用這個資源庫下載這種型別的構件 預設值:true ; updatePolicy:指定下載更新的頻率。這裡的選項是:always(一直),daily(每日,預設值),intervalX(這裡X是指分鐘),或者never(從不);checksumPolicy:當Maven驗證構件校驗檔案失敗時該怎麼做fail(失敗)或者warn(告警)

       3.activeProfiles 指定被啟用的配置檔案。

  第二步:下載專案依賴的JAR

    我們在POM.XML中加入要引入的JAR,Maven會自動的從Nexus 私服下載對應的JAR,我們在localRepository 指定本地倉庫儲存路徑下就可以找到對應的JAR

      

   第三步:我們想把我們的傳Web專案的api提供給別人使用時,我們上傳到Nexus 私服上供別人去下載使用,這裡我介紹使用Maven命令上傳,也可以使用手動上傳。

    我們在parent專案中POM.XML加入distributionManagement標籤指定Nexus 私服的URL

     

   test-maven-api型別是JAR,我們現在要把這個JAR打包並上傳到Nexus 私服,首先我們先點選test-maven-api專案右擊Run AS->Maven Install

    這時JAR打包好了

     

   我們用Maven命令上傳,先點選test-maven-api專案右擊Run AS->runconfiguration  然後Maven Build右擊New 新建並Goals填入clean deploy

     

    然後點選run 執行一下 就可以了,我們在console列印成功並在Nexus 私服上可以檢視得到上傳成功。

     

  

我們上傳上去,方便別人去下載,不用我們每次要使用時,在打包給別人使用。

在這整個過程中,我們碰到的一些錯誤

  1)我們在上傳JAR時報一個錯誤,就是Nexus 私服的使用者名稱和密碼寫錯了,導致報錯上傳不了

    

  我們在Eclipse關聯的settings.xml中servers中的使用者名稱和密碼寫對就可以。

  2)我們在POM.XML引入依賴的JAR包時,版本很多時,我們沒寫版本,這個就會報找不到

     

這時我們要指定使用了哪個版本,這樣就不會報找不到這個JAR包