Gibt es eine Möglichkeit, mehrere Java-Quellverzeichnisse in einem einzigen Maven-Projekt zu kompilieren?
194
Sie können mit build-helper ein neues Quellverzeichnis hinzufügen:
<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
Element ist in/project/build/plugins
und NICHT in/project/build/pluginManagement/plugins
m2e connector for build-helper-maven-plugin
vom Eclipse-Marktplatz installieren , um den Fehler in pom.xml zu entfernen'build.plugins.plugin.version' for org.codehaus.mojo:build-helper-maven-plugin is missing
Sie sie innerhalb<plugin>
des Tags hinzufügen müssen<version>1.12</version>
Ich mache es naiv so:
quelle
Das hat bei mir funktioniert
quelle
sourceDirectory
- und möglicherweise zusätzlichesources
- als Wurzeln von Quelldateien annehmen . In Ihrer Lösung ist dasmaven-compiler-plugin
das einzige Plugin , das diese tatsächlichen Wurzeln kennt.Damit es in IntelliJ funktioniert, können Sie auch hinzufügen
zum Maven-Compiler-Plugin
quelle
Dies funktioniert auch mit maven, indem das Ressourcen-Tag definiert wird. Sie können Ihre src-Ordnernamen beliebig benennen.
quelle
Resources are not (usually) code. They are not compiled
Dies funktionierte mit Maven 3.5.4 und jetzt sieht Intellij Idea diesen Code als Quelle:
quelle
Verwendete das Build-Helper-Maven-Plugin aus dem Post - und aktualisiere src / main / generate. Und mvn clean compile funktioniert auf meinem ../common/src/main/java oder auf ../common, also behalte letzteres bei. Dann ja, um zu bestätigen, dass die IntelliJ IDEA (Version 10.5.2) -Ebene der Kompilierung fehlgeschlagen ist, wie David Phillips erwähnt hat. Das Problem war, dass IDEA dem Projekt keinen weiteren Quellstamm hinzufügte. Durch manuelles Hinzufügen wurde das Problem behoben. Es ist nicht schön, da die Bearbeitung von Elementen im Projekt von Maven stammen sollte und nicht von der direkten Bearbeitung der IDEA-Projektoptionen. Ich werde jedoch in der Lage sein, damit zu leben, bis sie das Build-Helper-Maven-Plugin direkt unterstützen, sodass die Quellen automatisch hinzugefügt werden.
Dann brauchte ich eine weitere Problemumgehung, damit dies funktioniert. Da jedes Mal, wenn IDEA die Maven-Einstellungen nach einem POM-Wechsel erneut importierte, die neu hinzugefügte Quelle im Modul beibehalten wurde, verlor sie die Auswahl der Quellordner und war nutzlos. Also für IDEA - müssen diese einmal einstellen:
Jetzt ist es auch nicht die beste Vorgehensweise der Welt, diese Ordner beim Import zu behalten, ... aber es auszuprobieren.
quelle
Während die Antwort von evokk grundsätzlich richtig ist, es fehlt Testklassen . Sie müssen Testklassen mit dem Ziel add-test-source hinzufügen :
quelle
Dies kann in zwei Schritten erfolgen:
${build.directory}
Wenn Sie mit gestartetem Jetty (
jetty:run
) arbeiten, führt die Neukompilierung einer Klasse in einem beliebigen Modul (mit Maven, IDEA oder Eclipse) zum Neustart von Jetty. Das gleiche Verhalten erhalten Sie für geänderte Ressourcen.quelle
In der Konfiguration können Sie verwenden
<compileSourceRoots>
.Dies sind alle Konfigurationen, die für die Version 3.8.1 des Compiler-Plugins verfügbar sind. Verschiedene Versionen haben unterschiedliche Konfigurationen, die Sie finden können, indem Sie Ihren Code
-X
nach dem allgemeinen Befehl mvn ausführen . Mögenund Suche mit ID oder Ziel oder Plugin-Name Dies kann auch bei anderen Plugins hilfreich sein. Eclipse, IntelliJ zeigt möglicherweise nicht alle Konfigurationen als Vorschläge an.
quelle