2010-06-18 32 views
19

我想弄清楚Maven的使用,並且我得到了很多描述其功能和用途的文章。但是我不能從生產力的角度理解Maven的實際使用。如何在我的Java項目中使用Maven以及爲什麼?

從我習慣的學校項目中,只需在Eclipse中創建一個新的Java項目,編寫代碼,創建一個.war(如果基於Web),並將代碼粘貼到Tomcat的webapps文件夾並啓動服務器!

所以,

  1. 哪裏Maven的進入畫面?我已經使用Ant,並且我理解螞蟻從標準化構建過程中受益。但是爲什麼我們需要Maven形式的高級Ant?

  2. 無論如何,我需要使用它,那麼我從哪裏開始 - 基本流程,一些很好的教程?

感謝

+5

Ant並不是一個非常標準化的構建過程。它更多的是「隨心所欲地做任何你想要的」構建過程。 – ColinD 2010-06-18 18:41:00

回答

14

Maven是用於管理構建,測試和部署過程。它可以分開單元測試和集成測試,因此只有在必要時才運行它們並縮短構建時間。

這也是一個依賴管理,當你意識到你的項目的服務器上的工件需要apache commons-logging 1.0.4但任何事情過去0.7.9客戶端衝突,你可以幾行只是添加到相應的pom.xml文件,這意味着,和Maven處理所有這些(下載,安裝和跟蹤這些依賴項的不同版本)。

在我當前的任務之前,我並不是一個信徒,但是經過2年的時間,我在大型企業應用程序中使用它,我絕對尊重Maven帶來的東西。有很多在線資源,但如果你要成爲這方面的領導者並且真的感到不舒服,我建議你去買一本書 - the O'Reilly one對你有幫助。


忘了提,有一個Eclipse插件,這使得它幾乎是無痛與Eclipse使用方法:m2Eclipse


例如二更新pom.xml段回答OP問題:

pom.xml將包含XML代碼,如:

<dependencies> 
    <dependency> 
     <groupId>commons-logging</groupId> 
     <artifactId>commons-logging</artifactId> 
     <version>1.0.4</version> 
     <scope>provided</scope> 
    </dependency> 
</dependencies> 

這些是從中央Maven倉庫下載(谷歌「行家nexus「),或者你可以配置你自己的附加存儲庫(比如你自己的項目,或者如果你沒有連接互聯網)。

+0

那麼,maven會下載並安裝依賴項中所需的jar文件?怎麼樣? – zengr 2010-06-18 18:45:42

+0

+1 for m2eclipse – stacker 2010-06-18 18:56:49

+0

@zengr,它將它們下載到本地「存儲庫」(思考緩存),並在運行測試,編譯等時在類路徑中包含來自回購庫的JAR。打包.war時,JAR然後打包到.war中。 – 2010-06-18 21:02:17

3

Free books about Maven可以從Sonatype(Maven的原始開發者來自哪裏)下載。

另請參閱Apache Maven網站上的文檔。

+0

鏈接似乎被打破。新鏈接可能看起來像[this](http://www.sonatype.com/resources/books)。 – Pshemo 2014-06-27 21:52:19

1

Maven進入圖片的位置?我用 已經用Ant和我瞭解螞蟻 的好處,標準化構建 的過程。但爲什麼我們需要一個以Maven的形式的高級Ant? ?

  • Maven的介紹「約定優於配置」這會有所幫助,如果有同事寫的代碼比螞蟻大scipts。加上依賴管理,唯一的麻煩就是將龐大的項目轉換爲許多工件。

在任何情況下,我需要使用它,所以 我在哪裏開始 - 基本流程, 一些好的教程?

很有幫助。

5

完全相同相同的看法,你和我多年的Maven避免。

的事情是,它可以讓你輕鬆地獲得所需的罐子您的應用程序可能需要(叫做依賴 - 罐子和其他的東西 - )。所以下次別人運行你的項目時,他會自動獲得罐子。

我知道這有點難以掌握,直到您使用它的現有項目工作。

比如我最近下載了一個開源項目,它依賴於10或12個不同版本的jar不同。在下載源代碼並執行Maven之後,所有這些罐子(以及更多其他的)都爲我下載。

與Maven的問題(如我的一個朋友告訴我的)是執行一個「Hello World」程序,它首先下載世界迎接。 :P

+0

謝謝你的分享:) – zengr 2010-06-18 20:34:37

+0

:)不客氣。順便說一句,我試圖深入所有的文檔,教程和一切,但沒有什麼比剛剛運行它更有意義,然後一切都開始有意義。 – OscarRyz 2010-06-18 20:42:00

0

最新的netbeans也有很好的maven集成。

0

如果你在一個組織內,嘗試構建一個Maven存儲庫代理。 Artifactory是一個不錯的選擇。

4

爲所有那些想知道的Maven同時下載的依賴罐子,簽出在用戶根目錄下名爲.m2目錄文件夾。例如。對我來說這是C:\ documentsand設置\ myUserName.m2 \

也是我研究的行家一點,我已經取得了一些小的塗鴉像提醒。如果它是值得一讀,然後在這裏它是::

/* MVN產生 MVN下載安裝所有必要的罐子 MVN試驗測試提出申請...... MVN網站建立的網站下載依賴

要部署該網站,我們需要聲明一個位置以分發到您的pom.xml中,類似於部署存儲庫 。 ... 網站 SCP://www.mycompany.com/www/docs/project/ ...

MVN網站部署部署網站

如何建立網站的結構:

: site.xml文件用於描述網站的佈局,並取代在Maven中

使用的navigation.xml文件的樣品在下面給出

Maven的 http://maven.apache.org/images/apache-maven-project.png http://maven.apache.org/ http://maven.apache.org/圖像/行家-small.gif

<menu name="Maven 2.0"> 
    <item name="Introduction" href="index.html"/> 
    <item name="Download" href="download.html"/> 
    <item name="Release Notes" href="release-notes.html" /> 
    <item name="General Information" href="about.html"/> 
    <item name="For Maven 1.x Users" href="maven1.html"/> 
    <item name="Road Map" href="roadmap.html" /> 
</menu> 

<menu ref="reports"/> 

... 

所以實際上,我們需要將我們的html鏈接到這種結構格式,以使網站佈局 也爲了我們添加任何新的CSS或這樣的東西,我們需要做的就是將它們放入資源部分 src文件夾

那麼我們可以創建項目的war文件,奠定它在Apache或這種類似文件夾的我們心儀的Web服務器

httpd的文件夾中的情況下,我們需要生成項目,我們需要增加幾行代碼到我們的pom.xml文件中,那就是: ... org.apache .maven.plugins Maven的項目信息的報告,插件 2.0.1 ...

還,網站描述是在site.xml中設置

細節可以看到他們的重要性行家

行家結構的文檔:

項目/ 的pom.xml - 定義項目 src/ main/ java/- 包含將放入最終工件中的所有java代碼。
查看maven-compiler-plugin的詳細信息 scala/- 包含將在最終工件中使用的所有scala代碼。 ////不需要我們當前的項目 有關詳細信息,請參見maven-scala-plugin 資源/ - 包含最終工件中類路徑 上應該可用的所有靜態文件。詳情請參閱maven-resources-plugin webapp/- 包含Web應用程序的所有內容(jsps,css,圖像等)。)
查看maven-war-plugin的詳細信息 site/- 包含用於創建項目網站的所有apt或xdoc文件。
查看maven-site-plugin的詳細信息
test/ java/- 包含用於測試的所有java代碼。
查看maven-compiler-plugin的詳細信息 scala/- 包含用於測試的所有scala代碼。
有關詳細信息,請參閱maven-scala-plugin 資源/ - 包含測試期間 類路徑應提供的所有靜態內容。見Maven的資源 - 插件細節

MVN驗證這將驗證所有的依賴性得到滿足,並沒有遺漏 MVN編譯這將編譯項目 MVN驗證檢查包裝是否有效與否 也在項目,所述依賴關係被插入到XML文件

依賴注射的示例下面:: org.scala琅 階庫 2.7.2-RC2 給出JUnit的 的JUnit 3.8.1 測試

每個依賴關係包括幾項:

* groupId - The group of the dependency to rely on 
* artifactId - The artifact in the group to rely on 
* version - The version of the dependency to rely on 
* scope - The "scope" of the dependency. Defaults to compile (more details later) 
* packaging - The packaging for the dependency. Defaults to jar (e.g. jar, war, ear) 

您可以通過以下步驟整合您的靜態頁面:

* Put your static pages in the resources directory, ${basedir}/src/site/resources 
* Create your site.xml and put it in ${basedir}/src/site 
* Link to the static pages by modifying the menu section, create items and map them to the filenames of the static pages 

mvn tomcat:depl oy部署到tomcat或apache,你可以去這個命令

相關問題