> 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>中定義的名稱保持一致就可以了