我是Maven的新手,我有一個基於Java的Web項目,並在MyEclipse中配置了maven。
現在,如果我修改任何Java文件,那麼我需要做Run as -> Mvn install
或Mvn package
?Mvn安裝或Mvn包
回答
mvn install
是最常用的選項。
mvn package
很少使用,只有在你使用maven構建過程來調試一些問題的時候。
請參見:http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html
注意mvn package
只會造成一個jar文件。
mvn install
會做和安裝jar(和類等)的文件在適當的地方,如果其他代碼依賴於那些罐子。
我通常做一個mvn clean install
;這將刪除target
目錄並重新創建該位置的所有罐子。
乾淨有助於不需要或刪除的東西,有時可能會阻礙。
而不是調試(有些時候)只是開始新鮮的時間。
我不同意這個軟件包很少用於2點。 1)每次運行安裝時都會運行。 2)如果你正在製作一個.war,那麼只需運行包就可以了,因爲你不需要在本地回購中進行戰爭。 – 2014-01-15 16:04:28
答案沒有解釋,你爲什麼更願意安裝到本地存儲庫。根據我的理解,如果項目設置正確,那麼反應堆將提供模塊之間的依賴關係。如果項目設置不正確,則安裝可能會隱藏這一事實並使用錯誤的工件。如果您有相關的項目,必須由於某種原因單獨構建,那麼您只需要安裝。 – 2015-08-17 13:41:16
從http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html
package
:採取經編譯的代碼,並在其分發 格式打包,諸如JAR。
install
:安裝包到本地倉庫,用作其他項目 依賴本地
所以回答你的問題是,它取決於你是否希望它安裝到本地回購。安裝也會運行包,因爲它在目標階段堆棧中位置較高。
這取決於您在更改Java文件後要實現的目標。在你想測試maven過程之前,你永遠不需要做任何事情。 Eclipse/MyEclipse將構建必要的東西並將輸出放在項目中的適當位置。您也可以運行或部署它(例如,如果它是一個Web項目),而不需要明確地使用maven做任何事情。最後,要在Maven倉庫中安裝你的項目,你需要做一個Maven安裝。你也可能有其他想要執行的Maven目標,MyEclipse不會自動執行。
正如我所說,這取決於你想要做什麼。
包 - 使編譯的代碼,並在其分發格式打包,諸如JAR或WAR文件。 安裝 - 軟件包安裝到本地倉庫,用作其他項目的依賴本地
從Lifecycle reference,安裝將運行項目的集成測試,包不會。
如果您確實需要不安裝生成的工件,請至少使用驗證。
如果你不使用一個遠程庫(如artifactory的),使用普通的老: mvn clean install
很老的話題,但據我所知,如果您有自己的倉庫(如:帶artifactory的)分享你的團隊(S)之間的罐子,你可能想使用
mvn clean deploy
代替。
這樣,您的持續集成服務器可以確保將所有依賴關係正確地推送到遠程存儲庫中。如果你錯過了,mvn將無法找到你的CI本地m2存儲庫。
我想你是在談論mvn clean部署,而不是mvn clean package – Mayjak 2016-01-18 16:42:17
的確,感謝@Estarriol,我更新了我的答案。 – user1853859 2016-01-20 20:53:13
另外你應該注意的是,如果你的項目是由多個相互依賴的模塊組成的,你應該使用「install」而不是「package」,否則你的編譯會失敗,當你使用install命令時, A將打包並部署到本地存儲庫,然後如果模塊B需要模塊A作爲依賴項,則可以從本地存儲庫訪問它。
的正確方式是mvn package
,如果你做了正確的事情爲你構建的核心部分,那麼應該沒有必要安裝你的包在本地倉庫。
此外,如果您使用Travis,則可以「緩存」您的依賴關係,因爲如果您將包用於自己的項目,它將不會觸及您的$HOME.m2/repository
。
實際上,如果你甚至試圖做一個mvn site
你通常需要做一個mvn install
之前。 site
中的錯誤太多,或者它的許多維護不當的插件。
- 1. mvn軟件包或mvn安裝
- 2. mvn乾淨安裝,mvn安裝:安裝文件順序?
- 3. 從gradle安裝mvn
- 4. tomee MVN安裝不包META-INF
- 5. 從MVN/GitHub安裝SystemML?
- 6. 當mvn安裝失敗 -
- 7. mvn安裝artifact id缺失?
- 8. Gradle備份到mvn安裝
- 9. Mvn乾淨安裝錯誤
- 10. MVN安裝錯誤日食
- 11. MVN全新安裝+ java.lang.NoClassDefFoundError
- 12. MVN安裝錯誤再次
- 13. mvn clean compile works但是mvn安裝在編譯時失敗
- 14. MVN包org.apache.pdfbox
- 15. 'mvn -v'work,but'mvn'或'mvn compile'拋出異常
- 16. MVN安裝在本地倉庫
- 17. 安裝後無法識別mvn Maven 3
- 18. 經理多個mvn版本(安裝)
- 19. MVN安裝在本地倉庫
- 20. 無法在Ubuntu上安裝mvn 3.3.3 14.04
- 21. MVN安裝JAR-與依賴性
- 22. MVN可無法安裝碼頭
- 23. 獲取上奔跑「MVN乾淨安裝」
- 24. mvn在eclipse中安裝錯誤
- 25. 「mvn install」GIT mvn問題
- 26. 仍然沒有找到包後,'mvn安裝'
- 27. MVN全新安裝使用Java 1.5或1.6
- 28. 如何mvn安裝:安裝文件,同時排除神器
- 29. mvn安裝不安裝/嵌入依賴關係
- 30. mvn包tomcat6之間的差異:部署和mvn tomcat6:部署
請發表您的'pom.xml'。很難說不知道你的項目配置是什麼! – Ankit 2013-03-20 17:43:18
95%的時間使用'mvn install','mvn package'很少。 – Johan 2013-03-20 17:45:34
mvn install shoudl只把你的jar放到本地倉庫 - 我沒有看到有什麼真正的理由爲什麼要用web(war)項目來做到這一點? – Hurda 2013-03-20 20:43:56