J'ai un projet avec un pom.xml
qui a la déclaration <build>
suivante:Installation et compilation des artefacts Maven sur Java 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>
Quand je lance mvn install
sur ce projet, il compile le projet, exécute des tests unitaires et publie à mon repo local. Je suis en train d'apprendre un peu plus sur Maven ici, et je suis un moment difficile de trouver la documentation/explications sur les points suivants:
- Comment suis-je capable de courir
mvn install
, si le POM ne déclare pas sousbuild/plugins
? Est-ce quemaven-compiler-plugin
comprendmaven-install-plugin
, si oui, comment aurais-je pu comprendre cela? - Plus important encore: la valeur
build/plugins/plugin/configuration/source
et.../target
sont toutes les deux réglées sur1.8
. Si ma machine a Java 8 dessus, et que je coursmvn install
sur ce projet sans aucune erreur, est-ce que garantit que le projet construit avec Java 8? Je regarde le docs for the Compiler Plugin et ne vois pas cessource
/target
configs répertorié n'importe où.
Pour les docs, regardez ici: http://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html – khmarbaise
Merci @khmarbaise (+1) - à partir de ce lien j'ai trouvé le [Lifecycle Doc ] (http://maven.apache.org/ref/3.2.5/maven-core/lifecycles.html), et voir que 'compile' est en amont de' install', ce qui explique pourquoi faire un 'install' déclenche un 'compile'.Cependant, cela n'explique pas pourquoi le POM déclare le plugin du compilateur, mais pas le plugin d'installation. Pensées? – smeeb
@smeeb parce que ce n'est pas obligatoire. maven est livré avec une compilation et un plugin d'installation - ils sont intégrés. Presque chaque version maven est fournie avec une version différente de ces plugins. Vous pouvez _mayer_ la version ou la configurer, mais vous n'êtes pas obligé de le faire. Par exemple. si vous voulez dire au plugin de compilation _how_ (quel niveau de langue) de compiler. – Alexander