mvn install == mvn build +mvn clean
Maven build 等同於Maven命令;
mvn package表示對Maven工程進行打包。
Maven Clean等同於Maven命令;
mvn clean表示刪除maven工程的target目錄下的內容。
Maven Install等同於命令;
mvn install表示將jar包發布到本地maven倉庫。
首先需要理解maven的生命周期與插件目標這兩個概念:
拿Maven clean來說吧。
生命周期為clean,插件目標為maven-clean-plugin:clean。
Maven build是這個插件讓你自己去配置執行目標的。
Maven clean 清除上一次Maven執行的結果,
Maven generate-sources會根據pom配置去生成源代碼格式的包,
Maven install將項目輸出構件部署到本地倉庫。
不必太過於關注build工作的實現細節。
我們只需要使用一些build生命周期短語就可以達到我們的目標,
而不必管Maven是如何做到這些的。
如:只需要告訴Maven要安裝(install),
那么它自然就會驗證,編譯,打包,及安裝。
Dependency:
為了能夠build或運行,一個典型的Java工程會依賴其它的包。
在Maven中,這些被依賴的包就被稱為dependency。
dependency一般是其它工程的artifact。
Plug-in:
Maven是由插件組織的,它的每一個功能都是由插件提供的。
插件提供goal(類似於Ant中的target),
並根據在POM中找到的元數據去完成工作。
主要的Maven插件要是由Java寫成的,
但它也支持用Beanshell或Ant腳本寫成的插件。
Repository:
倉庫用於存放artifact,它可以是本地倉庫,也可以是遠程倉庫。