程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 初學maven(2)-maven/artifactory/m2eclipse安裝全過程

初學maven(2)-maven/artifactory/m2eclipse安裝全過程

編輯:關於JAVA

前段時間研究過一下maven,中途因為工作忙擱置了一段時間,重新再看時發現安裝過程基本忘光。只好找資料看然後再來一遍,將maven,artifactory和m2eclipse安裝使用的全過程記錄整理出來,備忘。另外我想這些資料應該比較適合maven的入門新手,照做一遍就可以完成三個東西的安裝設置,然後就可以學習和使用了。

一. 安裝maven

安裝官方標准的安裝方式(http://maven.apache.org/download.html#Installation)安裝,步驟如下

1. 下載解壓縮apache-maven-2.0.9-bin.zip到安裝目錄

2. 增加環境變量M2_HOME,指向maven的安裝目錄,注意不能以"\"結尾

3. 增加(可選)maven環境變量MAVEN_OPTS,值為"-Xms256m -Xmx512m",後續可以增加其他

4. 修改Path,增加%M2_HOME%/bin到Path路徑中

5. 確保JAVA_HOME環境變量存在並正確設置,確保%JAVA_HOME%/bin目錄在Path路徑中

安裝完畢後,在命令行執行"mvn --version"檢測maven是否正確安裝。

補充:

1. 如果是使用代理上網,需要在maven的配置文件加入相應的代理信息

否則會報錯:

The pulgin 'org.apache.maven.plugins:maven-archetype-plugin' does not exist or valid version could be found
     ......

解決方法:

打開文件 maven/conf/settings.xml,找到<proxies>,將原來注釋掉的<proxy>打開,修改相應的信息即可。

注意:

1.)<host>iproxy-sh.cn.ao.ericsson.se</host> 這裡不要用"http://"開頭,否則會無法連接

2. ) 如果用戶名、密碼不需要,可以刪除<username><password>,設置為空也行。

二. 安裝Artifactory

按照官方文檔,http://wiki.jfrog.org/confluence/display/RTF/Installing, 標准安裝,簡單說就是三步:

1. 下載並解壓縮最新版本的artifactory-1.3.0-beta-2.zip

2. 雙擊bin目錄下的artifactory.bat文件,啟動artifactory。

注意必須保證JAVA_HOME正確設置,並且jdk的版本是5.0或更高。

3. 用浏覽器打開http://localhost:8081/artifactory,使用admin/password登錄

配置Artifactory,在Artifactory安裝目錄下的etc目錄下,比較常用的是修改jetty.xml中的端口設置,將默認的8081端口

修改為其他。還有如果Artifactory是需要使用代碼連接網絡,需要修改artifactory.config.xml中的proxies。

三. 安裝m2eclipse插件

參照官網文檔http://m2eclipse.codehaus.org/。

找了一下沒有zip下載,只能用eclipse通過update site下載安裝,無法使用我最喜歡的link方式,有些遺憾。

安裝地址如下:

http://m2eclipse.sonatype.org/update/

更新後會自動變成三個site,一個不可用,另外兩個版本同步,有新舊兩個版本可以選擇,當然選最新的一個200807**的版本。

安裝好後,就可以使用m2eclipse插件為項目增加pom.xml文件了。有了m2eclipse的圖形界面使得操作顯得很簡單,容易理解和掌握。

update 20081128:

升級操作系統到vista,jdk到6.7,eclipse到3.4後,安裝新版本的maven,一切正常,但是啟動時會彈出窗口,說maven

需要eclipse在jdk下運行,而不應該是jre(奇怪以前安裝時怎麼沒有這種要求,難道是新版本引入的新功能?)。按照提示給出的建議進行以下操作:

1.要求修改eclipse.ini文件

加入兩行代碼,注意不要寫在一行,否則無法生效。

-vm
C:\aoxj\soft\java\jdk\jdk67\bin\javaw

2.設置installedJRE

直接進入eclipse的設置,在installedJRE中加入新的jre指向jdk,然後將默認的jre刪除。

四. 技巧小結

這幾天的摸索中,發現一些maven和m2eclipse的使用小技巧,總結下來主要有以下幾點:

1. repositories設置不要放到項目的pom.xml文件中

在使用Artifactory搭建私服後,肯定是需要將repositories設置為我們的私服地址的。下面的這段代碼就可以完成我們

的需要:

<repositories>
     <repository>
       <id>artifactory</id>
       <name>local private artifactory</name>
       <url>http://127.0.0.1:8081/artifactory/repo/</url>
     </repository>
    </repositories>

但是這段代碼放到哪裡比較好呢?按照maven的設置,可以放到%MAVEN_HOME%/conf/settings.xml, ~/.m2/settings.xml和

項目的pom.xml文件中,上面三個設置可以覆蓋,pom.xml中設置是最直接了當的。但是考慮到repositories信息是完全有

可能變化的,尤其是使用私服,萬一公司的私服換個地址難道所有項目的pom.xml文件都設置一遍? 還有pom.xml文件是用

來保存當前項目的多種依賴信息的,repositories信息應該和當前具體項目沒有直接聯系。因此不應該放到pom.xml文件中。

尤其在pom.xml文件需要保存到cvs,subversion等版本控制系統中,可變的repositories信息就更不合適保存了。

因此需要將repositories信息設置在%MAVEN_HOME%/conf/settings.xml或~/.m2/settings.xml,這樣就足夠靈活了。

實踐中發現一個比較奇怪的地方,我使用的是maven2.0.9版本,修改%MAVEN_HOME%/conf/settings.xml設置居然無效,只能

copy一份到~/.m2/settings.xml(這個文件默認是不會自動建立的),然後修改就可以正常生效了。沒有查清楚原因,好在

這兩個地方對我沒有實質區別,放~/.m2/也能接受,只是要記得備份一次避免重裝系統時被刪除。

2. settings.xml設置repositories的最簡單方式

發現最簡單的辦法就是打開settings.xml文件最下面的activeProfiles設置:

<activeProfiles>
       <activeProfile>artifactory</activeProfile>
     </activeProfiles>

當然要先設置好對應的profile,對於簡單場景,一個就足夠了,這裡我指向我搭建在本機的私服:

<profile>
    <id>artifactory</id>
    <repositories>
     <repository>
       <id>artifactory</id>
       <name>local private artifactory</name>
       <url>http://127.0.0.1:8081/artifactory/repo/</url>
     </repository>
    </repositories>
    <pluginRepositories>
     <pluginRepository>
       <id>artifactory</id>
       <name>local private artifactory</name>
       <url>http://127.0.0.1:8081/artifactory/plugins-releases</url>
       <snapshots>
         <enabled>false</enabled>
       </snapshots>
     </pluginRepository>
   </pluginRepositories>
   </profile>

順便提一下settings.xml文件中localRepository的設置,這個設置用來知名localRepository的目錄,默認不打開,使用默認值

~/.m2/repository,個人不喜歡,我就直接修改為固定位置:

<localRepository>G:/soft/maven/localRepository</localRepository>

3. dependency的classifier必須正確設置

在下載testng時出現問題,始終無法從官網下載testng的jar包,但是可以下載到testng-5.8.pom文件。反復查找才發現是

testng的jar包是區分jdk版本的,大家從這裡可以看到

http://repo1.maven.org/maven2/org/testng/testng/5.8/

testng的jar包是有1.4和1.5的兩種下載。增加classifier設置制定具體jdk版本之後就可以正常工作了。

當然如果artifact沒有jdk的差異就可以不需要設置這個參數。

<dependency>
       <groupId>org.testng</groupId>
       <artifactId>testng</artifactId>
       <version>5.8</version>
       <classifier>jdk15</classifier>
     </dependency>

4. groupId和artifactId的獲取方式

使用maven,很直接就會遇到這個問題,到底這個東西的groupId和artifactId是什麼呢?總不能瞎猜吧?

這裡推薦這個artifact查詢網站http://mvnrepository.com/,可以查找到25000+個artifact的信息,基本我們能用到的都

有了。

結合官網http://repo1.maven.org/maven2/ 頁面,基本可以搞定所有問題。上面testng需要設置classifier的問題我就是看到

http://repo1.maven.org/maven2/org/testng/testng/5.8/這個頁面後才發現問題所在的。

5. attifactory的http proxy設置

上面attifactory安裝時簡單的介紹了一下 的http proxy設置,需要修改artifactory.config.xml中的<proxies>。但是這個是不夠的,必須要再在<remoteRepository>中明確用<proxyRef>指明使用哪個代理,格式參考如下:

<remoteRepository>
       .........
       <url>http://people.apache.org/repo/m2-snapshot-repository</url>
       <proxyRef>your-proxy</proxyRef>
     </remoteRepository>

proxies中key要對應好<proxies>
       <proxy>
       <key>your-proxy</key>
       ......
     </proxies>

五. 比較有價值的參考資料

陸續google到的一些資料,比較好.

maven官網的資料

很全,很完整,非常值得看一遍,只是有點太多了,挺耗時間。而且是英文,暫時沒有知道對應的中文版本。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved