mvn 用法


mvn 用法
1、查看版本、打包
mvn -v

  mvn clean

  mvn package (直接打包)

        mvn package -Dmaven.test.skip=true ( 跳過測試代碼的編譯)

2 設置代理 
   編輯settings.xml文件 
   <proxies> 
   <proxy> 
       <id>abc</id> 
       <active>true</active> 
      <protocol>http</protocol> 
        <host> </host> 
     <port></port> 
      <username>...</username> 
    <password>....</password> 
     <nonProxyHosts>.....</nonProxyHosts> 
     </proxy>  
    </proxies> 
    nonproxyhosts指定哪些主機名不使用代理 
3   mvn clean install會把生成的jar打包到MAVEN的本地倉庫中 
5 maven的編譯依賴范圍: 
   compile:默認使用該依賴,對編譯,測試,運行三種classpath 都有效 
   test: 只對測試時有效,如junit 
   provided:在運行時無效,對編譯和測試有效,如servlet-api 
   runtime:如JDBC,對測試和運行有效,在編譯時無效 
6 歸類依賴 
   比如spring下的很多模塊,都是同一個項目的,版本都相同,則為了優化,可以這樣, 
先定義一個<properties>項,即 
   <properties> 
   <abc>1.0</abc> 
</properties> 
   
    然后其他的dependcy中,可以這樣 
     <version>${abc}</version> 
7 mvn dependency:list 
   可以看到當前項目已解析的依賴 
   mvn dependency:tree  看到依賴樹 
    mvn dependency:analyse 查看依賴的工具 
8 MVN的倉庫 
    MVN倉庫的路徑形式為groupId/artifactId/version/articatId-version.packagin 
  倉庫分為本地倉庫和遠程倉庫 
    本地倉庫的路徑修改,可以修改settings.xml 
   <settings> 
    <localRepository>d:\java\......</localRepository> 
</settings> 
9 MVN的生命周期:clean(清理項目),default是構建項目,site是建立項目站點 
10 命令行與生命周期 
    mvn clean 
      mvn test 
    mvn clean install 
     mvn clean deploy site-depoly 
    MVN的插件和目標對應的關系   dependcy:analyze 冒號前面是插件前綴,冒號后面是 
插件的目標 
  
11 聚合 
   當想一次過構建多個模塊時,可以使用聚合,關系是包含和被包含的關系: 
   <modules> 
      <module>..  </module> 
       <module>.....</module> 
</modules> 
12 繼承 
   抽取一個parent.pom,比如: 
   <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/maven-v4_0_0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.juvenxu.mvnbook.account</groupId> 
<artifactId>account-parent</artifactId> 
<version>1.0.0-SNAPSHOT</version> 
<packaging>pom</packaging> 
<name>Account Parent</name> 
<properties> 
<springframework.version>2.5.6</springframework.version> 
<junit.version>4.7</junit.version> 
</properties> 
<dependencyManagement> 
<dependencies> 
<dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-core</artifactId> 
<version>${springframework.version}</version> 
</dependency> 
<dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-beans</artifactId> 
<version>${springframework.version}</version> 
</dependency> 
<dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-context</artifactId> 
<version>${springframework.version}</version> 
</dependency> 
<dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-context-support</artifactId> 
<version>${springframework.version}</version> 
</dependency> 
<dependency> 
<groupId>junit</groupId> 
<artifactId>junit</artifactId> 
<version>${junit.version}</version> 
<scope>test</scope> 
</dependency> 
</dependencies> 
</dependencyManagement> 
<build> 
<pluginManagement> 
<plugins> 
<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-compiler- 
plugin</artifactId> 
<configuration> 
<source>1.5</source> 
<target>1.5</target> 
</configuration> 
</plugin> 
<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-resources- 
plugin</artifactId> 
<configuration> 
<encoding>UTF-8</encoding> 
</configuration> 
</plugin> 
</plugins> 
</pluginManagement> 
</build> 
</project> 
   這里有定義了父的依賴和插件。而子的繼承則變為: 
<parent> 
<groupId>com.juvenxu.mvnbook.account</groupId> 
<artifactId>account-parent</artifactId> 
<version>1.0.0-SNAPSHOT</version> 
<relativePath>../account-parent/pom.xml</relativePath> 
</parent> 
。。。。這里定義具體的依賴,其依賴不需要版本號了,比如這樣: 
  <dependencies> 
<dependency> 
<groupId>org.springframework</groupId> 
<artifactId>spring-core</artifactId>
</dependency> 
       </dependencies> 
13 剪裁反應堆 
   比如多個模塊的話,有可能只是選取其中的某些部分: 
  比如mvn-aggragtor下有mvn-email,mvn-parent,mvn-persist,mvn-email依賴mvn- 
parent,則 
  mvn clean install -pl account-email -am 
-pl:構建指定的模塊,模塊間用逗號分割 -am:同時構健模塊的所依賴的模塊 
14 默認情況下,maven-surefile-plugin的test目標會自動執行測試 
src/test/java下的一組命名模式的測試類,該組模式為 
   **/Test*.java: 
   **/*Test.java: 
   **/*TestCase.java: 
  跳過測試:mvn package-DskipTests 
  跳過測試代碼的編譯:  mvn package -Dmaven.test.skip=true 
15 只運行指定的測試: 
   mvn test-Dtest=類名 
    匹配 
   mvn test-Dtest=Random*Test 
   在pom中,可以自動運行以Tests結尾的測試類 
       <plugin> 
   <configuration> 
     <includes> 
     <include>**/*Tests.java</include> 
    </includes> 
    同樣可以用<excludes><exclude>去排除運行測試的類 
16 測試覆蓋率報告 
   mvn跟開源測試覆蓋率統計工具 合成,比如 
   mvn cobertura:cobertura 
  之后在target/site/cobertura下看到index.html文件 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM