2012-05-10 49 views
102

我剛開始使用Maven,我被告知要在特定的目錄下執行mvn installmvn在maven中完全安裝的是什麼

mvn install是做什麼的?

我認爲它在當前文件夾中查找pom.xml並開始遵循該文件中指定的指令。那是對的嗎?

+1

http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html –

回答

68

正如你可能知道的,Maven是一個構建自動化Apache提供的工具,它更依賴於管理。我們可以將它作爲Ant和Makefile的一個對等點,從而降低所需的所有依賴關係。

mvn install,它決定了基於項目配置pom.xml的超級pom.xml(根POM)下的所有子項目和下載的依賴關係樹/編譯所有目錄中的所需組件的用戶文件夾下稱爲.m2 。這些依賴項必須解決,以便無需任何錯誤地構建項目,並且mvn install是一個可能會降低大多數依賴項的實用程序。

此外,還有其他的應用程序,例如dependency:resolve,可以在任何特定情況下單獨使用。在MVN的構建生命週期如下:

  1. process-resources
  2. compile
  3. process-test-resources
  4. test-compile
  5. test
  6. package
  7. install
  8. deploy

使用標記-DskipTests=true可以忽略該mvn的測試階段。

+2

請注意,如果您想跳過所有與測試相關的目標,請使用:-Dmaven.test.skip = true(而不是-DskipTests = true) –

26

你看過任何Maven文檔,例如maven install plugin docs

Nutshell版本:它將構建項目並將其安裝到本地存儲庫中。

+0

假設您在開源庫上運行「mvn install」。然後,在使用我們首先編譯的開源庫的項目上運行「mvn install」。在運行「mvn install」時,JAR是否會首先在本地回購庫中查找?或者它依賴於POM文件? –

+1

@Kevin它應該先走本地,因爲這是一個重點。如果它不在本地存儲庫中,它將查看您配置的任何存儲庫(或默認存儲庫),並將其安裝到本地存儲庫(如果找到)。我懷疑你可以配置它總是跳過本地回購,但我不知道如何查看它。 –

+12

您*看過Maven的規範文檔嗎? Apache的站點解釋了mvn安裝的目的:「在大多數情況下,安裝:安裝目標不需要任何配置,它需要項目的POM,並且在缺省生成周期的安裝階段安裝工件文件。」這是因爲Apache的文檔沒有解釋「mvn install」實際上做了些什麼,像海報和我自己這樣的人正在尋找答案。完全合理的問題。 – bethesdaboys

1

-DskipTests=true-Dmaven.test.skip=true

夾Setting.xml進入您的.m2目錄文件夾縮寫形式。您可以使用鏈接到本地​​回購,以便下載的罐子不應該一次又一次地下載。

<url>file://C:/Users/admin/.m2/repository</url> 
</repository> 
1

install:install目標是通過提供«阿帕奇Maven的安裝插件»:

阿帕奇Maven的安裝插件

安裝插件是在安裝階段用來添加僞像(一個或多個),以本地存儲庫。安裝插件使用POM中的信息(groupId,artifactId,version)確定本地存儲庫中工件的正確位置。

本地存儲庫是存儲構建所需的所有工件的本地緩存。默認情況下,它位於用戶的主目錄(~/.m2/repository)內,但可以使用<localRepository>元素在~/.m2/settings.xml中配置該位置。

- Apache Maven Install Plugin - Introduction

話雖如此,確切的目標宗旨:

install:install用於自動安裝該項目的主神器(該JAR,WAR或EAR),其POM和任何連接的工件(源的javadoc等)由一個特定的項目產生。

- Apache Maven Install Plugin - Introduction

有關目標的更多詳細信息,請參閱Apache Maven Install Plugin - install:install頁面。

有關構建生命週期的一般信息以及目標在構建生命週期的哪個位置的其他詳細信息,請參閱Maven – Introduction to the Build Lifecycle頁面。