<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    幸せのちから

    平凡的世界
    看似平常實崎嶇
    成如容易卻艱辛

    Maven2 介紹

    Chapter?1.?Maven2

    1.1.?Maven2 體驗

    聲明:本節內容來源于blogjava網站jbob的blog 本節的版權歸原作者所有,不適用本手冊的版權申明。

    maven是一個java項目管理工具,深化了ant,但又有自己一整套的項目集成策略。目前的版本是2.0.2。

    1. maven網站 下載maven2,解壓縮

    2. 配置環境變量:maven_home、path

    3. cmd-> mvn --version 檢查是否安裝成功 [顯示版本號,則說明安裝成功]

    4. 配置,Maven的配置分為三個層次:

      • - pom.xml:針對某個項目的配置

      • Installation

      • User -針對某個用戶的配置

      我們首先配置主要是user級別的,主要包括兩點:設置本地的資源庫和代理服務器[如果需要的話] 在%maven_home%/conf/setting.xml中配置:

      					<localRepository>d:/repo</localRepository>
      					<proxy>
      <id>proxy1</id>
      <active>true</active>
      <protocol>http</protocol>
      <username></username>
      <password></password>
      <host>222.136.91.1</host>
      <port>80</port>
      <nonProxyHosts></nonProxyHosts>
      </proxy>

      修改之后copy一份到${home}/.m2

    5. 建立新的項目

      					mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-app
      • 首先,程序會從遠程下載必要的jar包到你的localRepository,即我們剛剛設置的[d:/repo]

      • 然后,會在當前目錄下面生成my-app文件夾,包括簡單的包結構[java,test]和一個HelloWorld程序及測試,以及pom.xml文件。

      注意:pom.xml contains the Project Object Model (POM) for this project.The POM is the basic unit of work in Maven。

    6. 編譯

      mvn compile

      第一次運行會下載很多jar包,而且機器負荷會很重。運行這個命令需要在pom.xml相同目錄下面, 這個編譯只編譯主程序,不會編譯test下面的程序。如果需要單獨編譯test,請運行:

      mvn test-compile

      compile之后會生成target文件夾,主程序編譯在classes下面,測試程序放在test-classes下

    7. 測試

      mvn test

      會自動先編譯再運行測試

    8. 打包

      mvn package

      打包之前會進行編譯,測試

    9. 安裝

      mvn install

      會將package之后的jar包copy到

      <local-repository>/com/mycompany/app/my-app/1.0-SNAPSHOT/my-app-1.0-SNAPSHOT.jar
    10. 其他

      mvn site

      注意,還可以:

      deploy site

      在pom.xml中加入

       <distributionManagement>
      <site>
      <id> website </id>
      < url> scp://www.mycompany.com/www/docs/project/ </url>
      </site>
      </distributionManagement>

      當然你需要設置server

      mvn site-deploy
      mvn clean
      mvn idea:idea [為IDE工具idea生成項目文件]
    11. Resource

      ${basedir}/src/main/resources都會編譯到jar文件中,而且該目錄下的內容將直接位于jar文件的頂部。

      測試用資源文件-> ${basedir}/src/test/resources,引用時如下例:

      InputStream is = getClass().getResourceAsStream( "/test.properties" );

      文件位于 ${basedir}/src/test/resources/test.properties。

    12. 如何filter我們的資源文件

         < build >
      < resources >
      < resource >
      < directory > src/main/resources </ directory >
      < filtering > true </ filtering >
      </ resource >
      </ resources >
      </ build >

      因為原來默認的filter為false所以要加上上面的代碼

      eg:我們在src/main/resources下面建立application.properties文件

      # application.properties
      application.name=${pom.name}
      application.version=${pom.version}

      運行:mvn process-resources 在target/classes下面的application.properties結果為:

       # application.properties
      application.name=Maven Quick Start Archetype
      application.version=1.0-SNAPSHOT

      這就是所謂的filter。當然filter還可以用其他的外部文件,不一定來自pom.xml[ ${pom.name} ]以及setting.xml[ ${settings.localRepository }]

      e.g src/main/filters/filter.properties:

      # filter.properties
      my.filter.value=hello!

      pom.xml:

       < build >
      < filters >
      < filter > src/main/filters/filter.properties </ filter >
      </ filters >
      < resources >
      < resource >
      < directory > src/main/resources </ directory >
      < filtering > true </ filtering >
      </ resource >
      </ resources >
      </ build >

      # application.properties

      application.name=${pom.name}
      application.version=${pom.version}
      message=${my.filter.value}

      這樣在運行mvn process-resources 會得到類似的效果,當然我們也可以直接在pom.xml中定義:

      < build >
      < resources >
      < resource >
      < directory > src/main/resources </ directory >
      < filtering > true </ filtering >
      </ resource >
      </ resources >
      </ build >
      < properties >
      < my .filter.value > hello </ my.filter.value >
      </ properties >

      效果同樣,這樣就不需要外部文件了。另外filter還可以來自系統設置以及可以自定義:

      # application.properties
      java.version=${java.version}
      command.line.prop=${command.line.prop}
    13. jar包依賴

      我們在mvn install后在local repo中生成的jar包也可以被其他項目所引用

      <dependency>
      <groupId>com.mycompany.app</groupId>
      <artifactId>my-app</artifactId>
      <version>1.0-SNAPSHOT</version>
      <scope>compile</scope>
      </dependency>

      注意scope,這里是compile,如果使用junit,scope是test。

      舉例說明:如果我們的project需要用到log4j包,那么我們可以 先google--"site:www.ibiblio.org maven2 log4j"。Index of /maven2/log4j/log4j 下面有maven-metadata.xml 描述了groupId,artifactId,version等等。獲取了這些信息之后,你 就可以在pom.xml中添加依賴

      <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.12</version>
      <scope>compile</scope>
      </dependency>
    14. 如何發布我的jar包到我的remote repository

      你需要在setting.xml中間設置server:

      <servers>
      <server>
      <id>mycompany-repository</id>
      <username>jvanzyl</username>
      <!-- Default value is ~/.ssh/id_dsa -->
      <privateKey>/path/to/identity</privateKey>
      <passphrase>my_key_passphrase</passphrase>
      </server>
      </servers>

      然后在pom.xml中設置遠程url:

      <distributionManagement>
      <repository>
      <id>mycompany-repository</id>
      <name>MyCompany Repository</name>
      <url>scp://repository.mycompany.com/repository/maven2</url>
      </repository>
      </distributionManagement>

    1.2.?Maven2的Eclipse插件安裝和使用

    1.2.1.?安裝

    你可以從http://m2eclipse.codehaus.orgupdate安裝Maven2的Eclipse插件,具體 安裝步驟請看該網站提供的Flash Demo: http://m2eclipse.codehaus.org/Installing_Maven_2.0_plugin_for_Eclipse.html

    1.2.2.?使用

    該插件的使用請看該網站提供的Flash Demo: http://m2eclipse.codehaus.org/Maven_2.0_Plugin_for_Eclipse.html

    關于openfan項目的Maven操作請參看后續章節。

    posted on 2006-04-13 00:14 Lucky 閱讀(13289) 評論(5)  編輯  收藏 所屬分類: extremeComponents

    評論

    # re: Maven2 介紹 2006-12-14 06:39 yyp[匿名]

    very helpful!

    Thank you!  回復  更多評論   

    # re: Maven2 介紹 2007-04-20 15:45 逍遙魚

    非常感謝,很有價值  回復  更多評論   

    # re: Maven2 介紹 2007-07-09 17:04 Thomas

    非常棒!  回復  更多評論   

    # re: Maven2 介紹[未登錄] 2008-04-21 14:16 小Q

    玩struts2時要maven,很不錯,收藏  回復  更多評論   

    # re: Maven2 介紹 2009-03-11 07:18 kewei

    非常的感謝!很有用,講的步驟很清楚!讓我懂了到底Maven是做什么用的。  回復  更多評論   

    <2006年4月>
    2627282930311
    2345678
    9101112131415
    16171819202122
    23242526272829
    30123456

    導航

    隨筆分類(125)

    文章分類(5)

    日本語

    搜索

    積分與排名

    最新隨筆

    最新評論

    主站蜘蛛池模板: 亚洲宅男天堂a在线| 亚洲国产最大av| 一级毛片免费观看不收费| 免费国产成人高清视频网站| 亚洲午夜无码久久久久小说 | 久久精品亚洲福利| 国产成人亚洲精品电影| 一本久久综合亚洲鲁鲁五月天| 亚洲国产成人综合精品| 亚洲第一网站男人都懂| 9久热精品免费观看视频| 久久精品国产精品亚洲色婷婷| 99re在线精品视频免费| 亚洲av无码久久忘忧草| 最新猫咪www免费人成| 亚洲AV无码一区二区三区久久精品 | jizz18免费视频| 亚洲国产精品无码久久久秋霞2| 嫩草在线视频www免费观看| 亚洲视频在线观看网址| 91在线视频免费播放| 亚洲AV无码精品国产成人| 免费乱码中文字幕网站| 青柠影视在线观看免费高清 | 亚洲AV无码一区二区三区久久精品| 一本久到久久亚洲综合| a级毛片免费播放| 亚洲国产美女在线观看| 免费一级特黄特色大片在线观看| 你好老叔电影观看免费| 国产成人精品亚洲日本在线| 啊v在线免费观看| 久久久免费的精品| 亚洲精品无码mⅴ在线观看| 超清首页国产亚洲丝袜| 很黄很黄的网站免费的| 亚洲免费在线观看| 亚洲国产午夜电影在线入口 | 亚洲成色在线影院| 尤物永久免费AV无码网站| 小草在线看片免费人成视久网|