Existe-t-il un moyen de compiler plusieurs répertoires source java dans un seul projet maven?
194
Vous pouvez ajouter un nouveau répertoire source avec build-helper:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<phase>generate-sources</phase>
<goals>
<goal>add-source</goal>
</goals>
<configuration>
<sources>
<source>src/main/generated</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
plugin
élément est dans/project/build/plugins
et NON dans/project/build/pluginManagement/plugins
m2e connector for build-helper-maven-plugin
depuis eclipse marketplace pour supprimer l'erreur dans pom.xml'build.plugins.plugin.version' for org.codehaus.mojo:build-helper-maven-plugin is missing
vous devez l'ajouter dans<plugin>
la balise<version>1.12</version>
Je le fais naïvement de cette façon:
la source
Cela a fonctionné pour moi
la source
sourceDirectory
- et éventuellement supplémentairessources
- que les racines des fichiers source. Dans votre solution, lemaven-compiler-plugin
est le seul plugin connaissant ces racines réelles.pour le faire fonctionner dans intelliJ, vous pouvez également ajouter
à maven-compiler-plugin
la source
Cela fonctionne également avec maven en définissant la balise de ressources. Vous pouvez nommer les noms de vos dossiers src comme bon vous semble.
la source
Resources are not (usually) code. They are not compiled
Cela a fonctionné avec maven 3.5.4 et maintenant Intellij Idea voit ce code comme source:
la source
Utilisé le plugin build-helper-maven du post - et mettre à jour src / main / généré. Et mvn clean compile fonctionne sur mon ../common/src/main/java, ou sur ../common, donc gardez ce dernier. Alors oui, confirmant que le niveau IntelliJ IDEA (ver 10.5.2) de la compilation a échoué comme l'a mentionné David Phillips. Le problème était que IDEA n'a pas ajouté une autre racine source au projet. L'ajouter manuellement a résolu le problème. Ce n'est pas bien car éditer quoi que ce soit dans le projet devrait provenir de maven et non de l'édition directe des options du projet IDEA. Pourtant, je pourrai vivre avec jusqu'à ce qu'ils prennent en charge build-helper-maven-plugin directement, de sorte qu'il ajoutera automatiquement les sources.
Il fallait ensuite une autre solution de contournement pour que cela fonctionne. Depuis chaque fois que IDEA a réimporté les paramètres maven après un changement de pom, la nouvelle source ajoutée a été conservée sur le module, mais elle a perdu ses sélections de dossiers source et était inutile. Donc, pour IDEA - vous devez définir ces paramètres une fois:
Maintenant, garder ces dossiers à l'importation n'est pas non plus la meilleure pratique au monde, ..., mais l'essayer.
la source
Bien que la réponse d'evokk soit fondamentalement correcte, il manque des classes de test . Vous devez ajouter des classes de test avec objectif add-test-source :
la source
Cela peut se faire en deux étapes:
${build.directory}
Si vous travaillez avec Jetty (
jetty:run
) démarré , la recompilation de n'importe quelle classe dans n'importe quel module (avec Maven, IDEA ou Eclipse) entraînera le redémarrage de Jetty. Le même comportement que vous obtiendrez pour les ressources modifiées.la source
Dans la configuration, vous pouvez utiliser
<compileSourceRoots>
.ce sont toutes les configurations disponibles pour la version 3.8.1 du plugin du compilateur. Différentes versions ont des configurations différentes que vous pouvez trouver en exécutant votre code avec
-X
après la commande générale mvn. Commeet effectuez une recherche avec un identifiant, un objectif ou un nom de plugin. Cela peut également être utile avec d'autres plugins. Eclipse, intelliJ peut ne pas afficher toutes les configurations comme suggestions.
la source