Czy istnieje sposób na skompilowanie wielu katalogów źródeł Java w jednym projekcie maven?
194
Możesz dodać nowy katalog źródłowy za pomocą 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
element jest w/project/build/plugins
/project/build/pluginManagement/plugins
m2e connector for build-helper-maven-plugin
z Eclipse Marketplace, aby usunąć błąd w pom.xml'build.plugins.plugin.version' for org.codehaus.mojo:build-helper-maven-plugin is missing
że musisz dodać w<plugin>
tagu<version>1.12</version>
Naiwnie robię to w ten sposób:
źródło
To zadziałało dla mnie
źródło
sourceDirectory
- i być może dodatkowesources
- jako katalogi źródłowe plików. W twoim rozwiązaniumaven-compiler-plugin
jest to jedyna wtyczka, która zna te rzeczywiste korzenie.aby działało w intelliJ, możesz także dodać
do wtyczki kompilatora maven
źródło
Działa to również z maven, definiując znacznik zasobów. Możesz nazywać nazwy folderów src, jak tylko chcesz.
źródło
Resources are not (usually) code. They are not compiled
Działa to z maven 3.5.4, a teraz Intellij Idea widzi ten kod jako źródło:
źródło
Użyłem wtyczki build-helper-maven z posta i zaktualizowałem src / main / wygenerowano. A mvn clean compile działa na moim ../common/src/main/java lub na ../common, więc zachowałem to drugie. Tak, potwierdzając, że poziom kompilacji IntelliJ IDEA (wersja 10.5.2) nie powiódł się, jak wspomniał David Phillips. Problem polegał na tym, że IDEA nie dodała innego źródłowego katalogu głównego do projektu. Dodanie go ręcznie rozwiązało problem. To nie jest miłe, ponieważ edytowanie czegokolwiek w projekcie powinno pochodzić z raju, a nie z bezpośredniej edycji opcji projektu IDEA. Będę jednak mógł z nim żyć, dopóki nie będzie wspierał wtyczki build-helper-maven-plug, tak aby automatycznie dodawała źródła.
Potrzebowałem jednak innego obejścia, aby to zadziałało. Ponieważ za każdym razem, gdy IDEA ponownie importowała ustawienia maven po zmianie pom pom, nowo dodane źródło było przechowywane w module, ale traciło to wybór folderów źródłowych i było bezużyteczne. Więc dla IDEA - musisz ustawić je raz:
Teraz trzymanie tych folderów podczas importu nie jest najlepszą praktyką na świecie, ... ale daje szansę.
źródło
Chociaż odpowiedź z evokk jest zasadniczo poprawna, brakuje klas testowych . Musisz dodać klasy testowe z celem add-test-source :
źródło
Można to zrobić w dwóch krokach:
${build.directory}
Jeśli pracujesz z uruchomioną Jetty (
jetty:run
), wówczas rekompilacja dowolnej klasy w dowolnym module (z Maven, IDEA lub Eclipse) doprowadzi do ponownego uruchomienia Jetty. Takie samo zachowanie uzyskasz dla zmodyfikowanych zasobów.źródło
W konfiguracji możesz użyć
<compileSourceRoots>
.są to wszystkie konfiguracje dostępne dla wersji kompilatora 3.8.1. Różne wersje mają różne konfiguracje, które można znaleźć, uruchamiając kod za
-X
pomocą ogólnej komendy mvn. Lubići wyszukiwanie za pomocą identyfikatora lub celu lub nazwy wtyczki Może to pomóc również w przypadku innych wtyczek. Eclipse, intelliJ może nie wyświetlać wszystkich konfiguracji jako sugestii.
źródło