Maven使用常用命令

位元流發表於2014-06-06
> mvn clean
刪除target資料夾
> mvn clean test
編譯測試程式碼,預設被放到target/test-classes資料夾下面
> mvn clean compile
編譯主程式碼,並放到target/classes資料夾下
> mvn clean package
打包程式碼,我們可以看到target檔案下生成了一個potato-core-1.0-SNAPSHOT.jar檔案(注意:maven會在打包之前執行編譯,測試等操作),檢視控制檯輸出我們可以看到打包過程的清晰過程
 
上面的打包後的jar檔案是不可執行的,如果需要打包可執行的jar包,則需要利用shade外掛,我們需要在外掛中配置如下資訊
<plugin>
                         <groupId> org.apache.maven.plugins</groupId >
                         <artifactId> maven-shade-plugin</artifactId >
                         <version> 1.2.1</version >
                         <executions>
                               <execution>
                                     <phase> package</phase >
                                     <goals>
                                           <goal> shade</goal >
                                     </goals>
                                     <configuration>
                                           <transformers>
                                                 <transformer
                                                       implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer" >
                                                       <mainClass> ktgu.lab.potato.App</mainClass >
                                                 </transformer>
                                           </transformers>
                                     </configuration>
                               </execution>
                         </executions>
                   </plugin>

然後再次執行>mvn clean package,我們可以看到target資料夾下有兩個檔案

original-potato-core-1.0-SNAPSHOT.jar
potato-core-1.0-SNAPSHOT.jar (可執行的)
> java -jar potato-core-1.0-SNAPSHOT.jar
> Hello world
 
> mvn clean install
打包並將打包好的jar包釋出到本地倉庫
 
> mvn dependency:list
檢視當前專案的依賴列表,使用eclipse的pom設計器可以看到圖形化的顯示結果,會更直觀
 
> mvn dependency:tree
檢視當前專案的依賴樹
 
> mvn dependency:analyze
專案依賴分析
 
> mvn clean deploy
將jar檔案部署到倉庫,需要在pom檔案中指定要部署的目的地倉庫
 
<distributionManagement>
             <repository>
                   <id> nexus-releases</id >
                   <name> Local nexus releases repository</name >
                   <url> http://localhost/nexus/content/repositories/releases/ </url>
             </repository>
             <snapshotRepository>
                   <id> nexus-snapshots</id >
                   <name> Local nexus snapshots repository</name >
                   <url> http://localhost/nexus/content/repositories/snapshots/ </url>
             </snapshotRepository>
       </distributionManagement>

說明:上面的配置檔案中指定的是將打包檔案部署到本地的一個倉庫,對外部或本地倉庫的訪問一般都需要配置許可權,所以還需要在settings.xml檔案中配置訪問許可權

<servers>
          <server>
               <id>nexus-releases</id>
               <username>admin</username>
               <password>admin123</password>
          </server>
          <server>
               <id>nexus-snapshots</id>
               <username>admin</username>
               <password>admin123</password>
          </server>
     </servers>

上面的<server>.<id>節點中的名稱需要和<repository>的<id>中定義的名稱保持一致就可以了

相關文章