我有一個pom.xml
具有以下<build>
申報一個項目:安裝和編譯Java的Maven構件8
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
當我運行mvn install
在這個項目上,它編譯項目,運行單元測試和發佈它到我的本地回購。我想了解一些關於Maven的在這裏,和我有一個艱難的時間在以下查找文檔/解釋:
- 我怎麼能跑
mvn install
,如果POM不build/plugins
下其聲明?maven-compiler-plugin
是否包含maven-install-plugin
,如果是的話,我怎麼能想出來呢? - 最重要的是:
build/plugins/plugin/configuration/source
和.../target
的值都設置爲1.8
。如果我的機器上有Java 8,並且我在此項目上運行mvn install
沒有任何錯誤,那麼是否保證項目使用Java 8構建?我正在查看docs for the Compiler Plugin,並且沒有看到那些source
/target
配置在任何地方列出。
對於文檔看這裏:http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html – khmarbaise 2015-03-13 15:00:45
謝謝@khmarbaise(+1) - 從該鏈接我找到了[生命週期文檔](http://maven.apache.org/ref/3.2.5/maven-core/lifecycles.html),並且看到'compile'是'install'的上游,這就解釋了爲什麼要執行'install'觸發器一個「編譯」。然而,它並沒有解釋爲什麼POM聲明編譯器插件,而不是安裝插件。思考? – smeeb 2015-03-13 15:04:48
@smeeb,因爲它不必。 maven捆綁了一個編譯和一個安裝插件 - 它們是內置的。幾乎每個Maven版本都附帶了這些插件的不同版本。您可能會更改版本或對其進行配置,但您不必這樣做。例如。如果你想告訴編譯插件_how_(哪個語言級別)編譯。 – Alexander 2015-03-13 22:42:27