2011-09-23 86 views

回答

18

mvn:install將打包的Maven模塊複製到本地存儲庫(默認情況下,位於~/.m2/repository),以供其他本地Maven構建訪問。

mvn:deploy上傳你的包Maven模塊,另一個(通常是遠程)存儲庫,由其他訪問,不一定地方,Maven的構建。

更多信息,請參見documentation for the build lifecycle

1

mvn:deploy將執行部署到遠程倉庫/環境,mvn:install將所有編譯的軟件包安裝到本地存儲庫,使其可用於在本地計算機上執行的其他構建。

+0

「所有編譯的軟件包」是什麼意思? – Daniel

+0

@Daniel,pom,jar,war,javadoc jar,源代碼jar以前的構建階段編譯/彙編的東西。 –

0

用一句話:mvn:install編譯和安裝您的組件在您的本地Maven存儲庫中,以便您可以在本地使用和開發的其他組件依賴它時使用它。 mvn:deploy將您的(以前安裝的)組件部署到遠程存儲庫。

+0

在部署之前是否需要安裝模塊_really_? – Daniel

+0

我認爲Maven的默認生命週期包含這一點。如果你只是部署它,那麼應該部署什麼?請參閱http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html上的文檔。這是因爲如果你調用一個構建階段,它不僅會執行構建階段,還會執行被調用構建階段之前的每個構建階段。 – mliebelt

+0

打包的工件。 – Daniel

2

install階段負責將工件安裝到本地緩存存儲庫中。這基本上適用於Maven倉庫,但公知的例子是也由行家束-插件支持的OSGi包存儲庫。

deploy階段負責將工件安裝到已發佈的存儲庫中。這通常適用於遠程存儲庫,但完全可以是暴露給外部世界的本地存儲庫。

由於所有的Maven階段,你可以與他們做任何你想要的。你可以按照你認爲合適的方式來調整插件階段,但上面的語義是常規的,你應該堅持下去,以便與其他插件的目標的默認階段保持一致。

相關問題