maven環境快速搭建(轉)

? ?最近,開發中要用到maven,所以對maven進行了簡單的學習。因為有個maven高手在身邊,所以,很快就上手了,我這里算是自我總結吧。關于maven是什么東東,請參考其它文章。

----------------準備工作-------------

Jdk? 1.5以上java開發環境。

Eclipse?IDE?一個。

Maven?3.0.3下載地址:?http://maven.apache.org/docs/3.0.3/release-notes.html

----//快速搭建步驟

?

第一步:配置maven環境

?

將下載文件解壓,然后設置maven環境

如果你配置過jdk的話,這里對你應該不難。如我的maven環境為:F:\maven\apache-maven-3.0.3

我的電腦-----屬性----高級-----環境變量-----環境變量-----新建

變量名:M2_HOME

變量值:F:\maven\apache-maven-3.0.3

找到path?

在環境變量值尾部加入:;%M2_HOME%\bin;---前面注意分號

當然,你也可以直接在path?路徑下加入:;F:\maven\apache-maven-3.0.3\bin??只是上面的方式更優雅一點。

我新建立

打開命令提示符(開始---運行---cmd),檢查我們的java環境和maven環境是否有誤。

?

?

第二步:修改倉庫位置

?

修改我們倉庫地址,倉庫用于存放我們項目所依賴的所有jar包。

我的倉庫路徑:F:\maven\repo----這個路徑是我自己創建,你可以將路徑創建在任何位置。

我們打開…\apache-maven-3.0.3\conf\目錄下的setting.xml文件,設置成我們創建的倉庫路徑

下面我們用一個命令驗證一下。打開命令提示符,輸入:mvn?help:system?

該命令會打印出所有的java系統屬性和環境變量。這些信息對我們日常的編程工作很有幫且。

如果運行的過程中沒有錯誤,打開我們倉庫(F:\maven\repo)會發現里面多了一些文件。這些文件就是我們從maven的中央倉庫下載到本地倉庫的。

?

第三步:創建maven項目

創建一個我們自己的項目。

我們通過maven命令行方式創建一個項目

mvn?archetype:create?-DgroupId=com.chongshi.test?-DartifactId=hello?-DpackageName=com.chongshi.test?-Dversion=1.0

?

因為是第一次構建項目,所有依賴的jar包都要從maven的中央倉庫下載,所以需要時間等待。等以后我們的本地倉庫中積累了我們常用的jar包后,我們的開發將變得非常規范和方便。^_^!!

?

借助下載jar包的時間,我們來了解一下pom.xml文件。

?

復制代碼
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.chongshi.test</groupId><artifactId>hello</artifactId><version>1.0</version><packaging>jar</packaging><name>hello</name><url>http://maven.apache.org</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency></dependencies>
</project>
復制代碼

??project:pom.xml文件中的頂層元素;?
??modelVersion:指明POM使用的對象模型的版本。這個值很少改動。
??groupId:指明創建項目的組織或者小組的唯一標識。GroupId是項目的關鍵標識,典型的,此標識以組織的完全限定名來定義。比如,org.apache.maven.plugins是所有Maven插件項目指定的groupId。?

??artifactId:指明此項目產生的主要產品的基本名稱。項目的主要產品通常為一個JAR文件。第二,象源代碼包通常使用artifactId作為最后名稱的一部分。典型的產品名稱使用這個格式:?<artifactId>-?<version>.?<extension>(比如:myapp-1.0.jar)。?

??version:項目產品的版本號。Maven幫助你管理版本,可以經常看到SNAPSHOT這個版本,表明項目處于開發階段。?

??name:項目的顯示名稱,通常用于maven產生的文檔中。?

??url:指定項目站點,通常用于maven產生的文檔中。?

??description:描述此項目,通常用于maven產生的文檔中。

?

對于一個項目中只有下面的一部分是是我們需要關注的:

<groupId>com.chongshi.test</groupId>

?<artifactId>hello</artifactId>

?<version>1.0</version>

?

第四步:編譯項目代碼

我們的項目已經創建完成。但我們點開目錄發現,它并不是我們eclipse所需要的項目目錄格式。我們需要把它構建成我們eclipse可以導入的項目。

在命令提示符下進入到我們的創建的項目目錄(F:\maven\hello)下,執行:mvn?clean?compile

Clean?告訴maven清理輸入出目錄target/,compile告訴maven編譯項目主代碼。

不要急,我們又需要一段時間來下載,相關jar包。^_^!第一次用maven要學會淡定。

?

項目是編譯完了,但項目的目錄結構還不是我們想要的eclipse的項目結構,是不能導入到eclipse中的。所以,還需要執行一個命令:mvn?eclipse:eclipse

?

命令執行完成后就得我們需要的項目目錄了。

?

第五步:導入eclipse工具

?

打開的我們的eclipse工具。

先配置maven倉庫路徑

Window----Perferences-----java-----Build?Path-----Classpath?Variables

New一個變量的類路徑。

Name?:M2_REPO???注意這個名字必須要大寫。

Path?:F:/maven/repo??點擊“Folder…”找到有本地倉庫的位置。

?

下面,可以導入我的hello項目了。Eclipse如何導入項目,我這里就不說了,如果你是個java開發人員的話。

?

第六步:包的更新與下載

?

打開項目發現我們junit?是3.8.1的,有點老了。那我想換成4.7的,如何通過maven的方式更換呢。其實,很簡單,打開我們項目下的的pom.xml文件。

復制代碼
……
<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.8.1</version><scope>test</scope></dependency></dependencies>
……
復制代碼

更改變,junit的版本號,然后重新執行:mvn?eclipse:eclipse??

Maven?中央倉庫地址:http://search.maven.org

?

假如,我們想下載一個struts?的jar包。在搜索框內搜索strruts?,會要列出中央倉庫中的所有struts版本。

列表的格式與我們pom.xml配置文件的格式是對應的。

?

?

?

?

我們在pom.xml中加入:

<groupId>stuts</groupId>

?<artifactId>struts-scription</artifactId>

?<version>1.0.1</version>

然后更新項目就可從中央倉庫下載我們想要的任意jar包(必須是開源的包)

?

繼續學習內容:

1.?如何創建一個web項目?

  如果想讓maven應用到項目開發中,這個是必須的。

2.?如何使用jeety?

  maven提供的一個容器,類似于tomcat

3.?如何創建一個代理倉庫?

  如果是團隊開發,這個很有必要,我們不可能每次都到中央倉庫拿包,那樣很慢,如果開發人員A已經下了某包,開發人員B還要下;創建代理倉庫,A第一次下的包會存入代理倉庫中,B要用時直接從代理倉庫取就行。

轉載于:https://www.cnblogs.com/quanfu2326/p/4291548.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/375300.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/375300.shtml
英文地址,請注明出處:http://en.pswp.cn/news/375300.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

cocos2d-x3.0 相對布局(一)

2dx相對布局和Android非常類似。假設前完成Android它應該是easy入門。Size widgetSize Director::getInstance()->getWinSize();Text* alert Text::create("Layout", "fonts/Marker Felt.ttf", 30 );alert->setColor(Color3B(159, 168, 176));aler…

管理員以標準權限運行時

在XP時代,大多數用戶都用一個管理員(administrator)帳號來登錄Windows 利用這個賬戶,用戶幾乎能沒有任何限制的訪問重要的系統資源,因為該賬戶被授予了很高的權限,一旦用這個帳號登錄了xp以及xp之前的操作系統,Windows操作系統就會創建一個安全令牌(security token).每當有代碼…

HDU 4791 amp; ZOJ 3726 Alice#39;s Print Service (數學 打表)

題目鏈接&#xff1a; HDU:http://acm.hdu.edu.cn/showproblem.php?pid4791 ZJU:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId5072 Problem DescriptionAlice is providing print service, while the pricing doesnt seem to be reasonable, so people using…

奪命雷公狗---ECSHOP---08---商品頁的拇改成星星

<strong>用戶評價&#xff1a;</strong>{*---------商品評價星星開始----------*}<img src"./images/stars{$goods.comment_rank}.gif" alt"comment rank {$goods.comment_rank}">{*---------商品評價星星結束-------*} 這里主要是要有星…

文件指針

一.移動文件指針 SetFilePointer,hFile,lDistanceToMove,lpDistanceToMoveHigh,dwMoveMethod dwMoveMethod 指明移動的模式 FILE_BEGIN 不管文件處于什么地方,總是從文件的頭部開始移動,這時的位置參數相當于指定了一個絕對位置 FILE_CURRENT 從當前的文件指針處開始移…

見證下的自我變化-2014全年總結

又是一年總結季&#xff0c;回過頭看看看自己的成長&#xff0c;心里真的是滿滿的喜悅之情…… 一年前自己的總結博客&#xff1a;http://blog.csdn.net/huo065000/article/details/19632603 半年前自己的總結博客&#xff1a;http://blog.csdn.net/huo065000/article/details/…

【Linux學習篇】This virtual machine is configured for 64-bit guest operating systems.……

在學習Linux的基本操作的時候&#xff0c;安裝虛擬環境則提示自己 This virtualmachine is configured for 64-bit guest operatingsystems.……起初由于各種拒絕的心理&#xff0c;所以屏蔽了這個錯誤&#xff0c;但是屏蔽永遠也解決不了問題的&#xff0c;所以自己則嘗試百度…

圖解SSIS監視文件夾并自動導入數據

圖解SSIS監視文件夾并自動導入數據 原文:圖解SSIS監視文件夾并自動導入數據 演示案例&#xff1a;讓系統自動監視文件夾&#xff0c;并把文件夾下面的excel文件導入到sql中&#xff0c;之后清空目錄。這個過程以往都需要寫程序來實現或者定時執行&#xff0c;現在可以用ssis來訂…

DLL轉Lib

在C中,為了允許操作符重載和函數重載,C編譯器往往按照某種規則改寫每一個入口點的符號名,以便使用同一個名字(具有不同的參數類型或者是不同的作用域)有多種不同的用法,而不會打破現有基于C的鏈接器,.這項技術通常被稱為改編(Name Mangling)或者名稱修飾(Name Decoration),許多…

WP8手機解鎖時提示“請確保IPOVERUSBSVC服務正常運行”解決方法

如果你各種重啟服務 卸載手機 重裝驅動都試過了還不行&#xff0c;請看看你是否安裝了Hyper-v或Vitualbox虛擬機&#xff0c;很有可能是虛擬交換機造成的。 我在網絡連接屬性里看到這個 把它卸載后&#xff0c;解鎖成功。 解鎖后記得重新安裝卸載的那個網絡服務轉載于:https://…

Win32路徑操作相關API

一.路徑截斷與合并 PathRemoveArgs 去除路徑的參數 PathRemoveBackslash 去除路徑最后的反斜杠 "\" PathAddBackslash 在路徑最后加上反斜杠 "\" PathRemoveBlanks 去除路徑前后的空格 PathAddExtension 在文件路徑后面加上擴展名 PathRemoveExtension 去…

Openjudge-計算概論(A)-稱體重

描述&#xff1a; 趙、錢、孫、李四個人中既有大人也有小孩&#xff0c;給他們稱體重時發現&#xff0c;他們每個人的體重都不一樣&#xff0c;且體重&#xff08;單位&#xff1a;公斤&#xff09;恰好是10的整數倍&#xff0c;且他們的體重都不高 于50公斤&#xff0c;已知趙…

浮點數的存儲

-------------------------------------------------------------------------------- 在VC6.0----float環境一共32位 其中第一位是符號位 第二到第9位中間8位為小數點位置&#xff08;指數以127的二進制為原點向下為負指數 向上為正指數&#xff09;后面23位為數據位。 S EE…

第二階段總結

結合第二階段后3天&#xff0c;我們試用了UI&#xff0c;antionbar&#xff0c;menu等實用&#xff0c;成功的做出了字體的轉換&#xff0c;題目的轉化等功能。 其實四則運算&#xff0c;說難不難 說易不易&#xff0c;總結出 主要有付出&#xff0c;就有回報。 menu等做的過程…

const 和指針

c用了那么久&#xff0c;覺得 const 和指針配合到一起的時候就會有點點分不出來。 如下: const Data* pData;Data const * pDataData * const pDataconst Data * const pData Data const * const pData是不是有點暈&#xff1f; 我其實用得最多的是 const Data* pData, 也…

Linux 查看系統用戶的登錄日志

查看用戶登錄系統的日志有兩類日志記錄用戶登錄的行為&#xff0c;一是記錄登錄者的數據&#xff0c;一個是記錄用戶的登錄時間一&#xff0c;記錄用戶登錄數據/var/log/wtmp日志文件記錄用戶登錄的數據。但這個文件是被編碼的文件&#xff0c;不能直接用vi、cat等命令查看&…

Android -- 自定義權限

在android系統的安全模型中&#xff0c;應用程序在默認的情況下不可以執行任何對其他應用程序&#xff0c;系統或者用戶帶來負面影響的操作。如果應用需要執行某些操作&#xff0c;就需要聲明使用這個操作對應的權限。 &#xff08;在manifest文件中 添加標記&#xff09;。 ap…

Win32 路徑操作API

路徑操作相關API 路徑截斷與合并函數 PathRemoveArgs 去除路徑的參數 PathRemoveBackslash 去除路徑最后的反斜杠“\” PathAddBackslash 在路徑最后加上反斜杠“\” PathRemoveBlanks 去除路徑前后的空格 PathAddExtension 在文件路徑后面加上擴展名 Pa…

dbms_output.put_line長度限制問題

dbms_output.put_line長度限制問題對于10g以上版本(包括10g), dbms_output.put_line的最大長度限制是32767. 如果報錯buffer overflow, 執行如下語句即可:set serveroutput ON SIZE UNLIMITED FORMAT WORD_WRAPPED對于10g以下版本dbms_output.put_line最大長度限制是255.轉載于…

js深入研究之Person類案例

<script type"text/javascript"> /* 定義一個Person類 */ function Person(name, age) {this.name name;this.age age; } /* 添加兩個方法getName getAge */ Person.prototype {getName: function() {return this.name;},getAge: function() {return this.a…