入職學習------maven

 

maven使用

  • maven手動創建
  • maven常用的命令
  • maven生命週期介紹-clean-default-site
  • maven-pom文件簡介
  • maven倉庫
  • maven依賴
  • maven聚合與繼承
  • maven私服
  • maven測試

    一:maven手動創建

  • 使用命令行:mvn archetype:generate 創建,其實我們平時使用IDEA的時候就和這個差不多的。

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-WebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false -DarchetypeCatalog=local

  • -DgourpId: 組織名,公司網址的反寫 + 項目名稱
  • -DartifactId: 項目名-模塊名
  • -DarchetypeArtifactId: 指定 ArchetypeId,maven-archetype-quickstart,創建一個簡單的 Java 應用
  • -DinteractiveMode: 是否使用交互模式

二:常用的命令

1:mvn  compile:編譯源代碼;    mvn test-compile :編譯測試代碼

2:mvn test:運行測試,編譯源代碼並運行測試代碼。

3:mvn package:打包,我試着的時候打了一個war包。

4:mvn install:將jar包部署到本地,比如兩條日誌中:

[INFO]Installing /home/sysadmin/mavnhomework/my-WebApp/target/my-WebApp.war to /home/sysadmin/.m2/repository/com/mycompany/app/my-WebApp/1.0-SNAPSHOT/my-WebApp-1.0-SNAPSHOT.war
[INFO] Installing /home/sysadmin/mavnhomework/my-WebApp/pom.xml to /home/sysadmin/.m2/repository/com/mycompany/app/my-WebApp/1.0-SNAPSHOT/my-WebApp-1.0-SNAPSHOT.pom

5:mvn deploy                                        遠程上傳jar

6:mvn clean                                          清除產生的項目

7:mvn help:effective-pom          窺探SuperPom

8:mvn dependency:tree               maven依賴樹

9:mvn clean package -Pdev -Dmaven.test.skip=true  打包時候過濾dev環境的test

三:生命週期

https://www.runoob.com/maven/maven-build-life-cycle.html 這個瞭解一下

四:pom.xml文件和倉庫簡單介紹

以project開頭和結尾,定義命名空間,編碼格式等

依賴的父pom(mvn help:effective-pom )

groupId 屬於項目組,一般是公司                          <groupId>com.mycompany.app</groupId>

atifactId 定義當前maven項目組中唯一的ID      <artifactId>my-WebApp</artifactId>

version指定了當前項目額版本號  SNAPSHOT快照的意思 項目還在開發中不是穩定版本的意思   <version>1.0-SNAPSHOT</version>

packaging:打包方式 <packaging>war</packaging>
modelVersion指明當前pom模型的版本 maven2和3只能是這個<modelVersion>4.0.0</modelVersion>
name聲明瞭一個對於用戶更友好的項目名稱,可寫可不寫<name>my-WebApp Maven Webapp</name>
finalname 項目打包名稱<finalName>my-WebApp</finalName>(在build中定義)
profile:選擇相應的環境,beta,線上環境選擇(在build中定義)
倉庫有兩個版本:一個是不穩定的、處於開發中的版本:snapshot。穩定版本:release

本地倉庫就是respository.可以再setiing.xml可以修改自己本地倉庫<localRepository>目錄</localRepository>

中央倉庫是安裝maven中的lib/maven-model-builder-3.x.x.jar


五:maven依賴特性

依賴:

type:依賴類型

scope:依賴範圍  compple 編譯依賴範圍默認的。system系統依賴範圍。import導入依賴範圍。

                                    test測試依賴範文,比如單元測試使用,打包部署是不是使用。

                                   provided:已提供依賴範圍,打包發佈不適用,jdk已經提供好。

                                  runtime:運行時依賴範圍,運行時使用。

optional:依賴是否可選

exclusions:排除傳遞依賴

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
    <scope>test</scope>
  </dependency>
</dependencies>

依賴衝突解決:路徑優先原則;

                           指定在dependencyManagement:

<dependencyManagement>

<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>3.8.1</version>
  </dependency>
</dependencies>

</dependencyManagement>


六:maven繼承與聚合

  • 聚合:能夠使用一個命令同時構建多個模塊

將兩個子工程用modules引入:

<modules>

<module>子工程pom</module>

<module>子工程pom</module>

</modules>

<packaging>pom</packaging>
  • 繼承:生命父pom供子pom繼承
    聚合模塊和繼承關機中的父模塊除了pom之外沒有實際的內容。



     

    七:作業

    • 使用archetype插件生成一個webapp項目。

      mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-WebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false -DarchetypeCatalog=local

    • 開發一個父子工程項目,並能夠正確構建,添加單元測試代碼,Main方法。要求:
      繼承公司的父pmo(11bee-supom-generic),要求用當前最新的版本。提示,可以去nexus.corp.11bee.com看目前存在的版本。
      使用properties佔位符修改spring各組件的版本爲你想指定的版本。
      有依賴管理(dependencyManagement)。
    • 使用assembly插件把依賴的所有jar包打到同一個包裏面。
      可以直接在上面工程的pom中增加。
  • 使用mvn assembly:assembly
  •  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章