Maven compiler avec plusieurs répertoires src

Existe-t-il un moyen de compiler plusieurs répertoires source java dans un seul projet maven?

161
demandé sur sal 2008-11-07 00:50:12

7 réponses

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>
246
répondu SilverNak 2017-11-01 14:42:31

je le fais naïvement de cette façon:

<build>
  <finalName>osmwse</finalName>
  <sourceDirectory>src/main/java, src/interfaces, src/services</sourceDirectory>
</build>
45
répondu comeGetSome 2014-05-13 07:52:46

cela a fonctionné pour moi

<build>
    <sourceDirectory>.</sourceDirectory>
    <plugins>
        <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
        <includes>
            <include>src/main/java/**/*.java</include>
            <include>src/main2/java/**/*.java</include>
        </includes>
        </configuration>
        </plugin>
    </plugins>
</build>
31
répondu sal 2012-09-10 09:23:30

pour le faire fonctionner à intelliJ, vous pouvez aussi ajouter

<generatedSourcesDirectory>src/main/generated</generatedSourcesDirectory>

maven-compiler-plugin

13
répondu domi.vds 2012-09-10 09:19:22

cela fonctionne aussi avec maven en définissant la balise resources. Vous pouvez nommer les noms de dossiers src comme vous voulez.

    <resources>
        <resource>
            <directory>src/main/java</directory>
            <includes>
                <include>**/*.java</include>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
        </resource>

        <resource>
            <directory>src/main/resources</directory>
            <includes>
                <include>**/*.java</include>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
        </resource>

        <resource>
            <directory>src/main/generated</directory>
            <includes>
                <include>**/*.java</include>
                <include>**/*.properties</include>
                <include>**/*.xml</include>
            </includes>
        </resource>
    </resources>
11
répondu sendon1982 2015-01-26 18:53:33

utilise le build-helper-maven-plugin du POST - et de mise à jour src/main/generated. Et mvn clean compile fonctionne sur my ../common/src/main/java, ou sur ../commun, de sorte gardé le dernier. Puis Oui, confirmant que IntelliJ idée (ver 10.5.2) niveau de la compilation échoué comme David Phillips mentionné. Le problème était que cette idée n'ajoutait pas une autre racine source au projet. L'ajouter manuellement résolu le problème. Ce n'est pas agréable comme éditer quoi que ce soit dans le projet devrait venir de maven et non de l'édition directe des options de projet D'IDEA. Pourtant, je serai en mesure de vivre avec jusqu'à ce qu'ils soutiennent build-helper-maven-plugin directement de sorte qu'il va auto ajouter les sources.

avait alors besoin d'une autre solution pour que cela fonctionne. Depuis chaque fois que IDEA réimportait des paramètres maven après un changement de pom, le source nouvellement ajouté était maintenu sur le module, mais il a perdu ses sélections de dossiers Source et était inutile. Donc pour IDEA-besoin de les définir une fois:

  • Sélectionnez - les Paramètres de Projet / Maven / Importation / conserver la source et de test dossiers sur la réimportation.
  • Add - Structure De Projet / Project Settings / Modules / {Module} / Sources / Ajouter Du Contenu De La Racine.

garder ces dossiers sur l'importation n'est pas la meilleure pratique dans le monde non plus, ... mais lui donner un essai.

2
répondu arntg 2011-11-11 08:32:07

cela peut se faire en deux étapes:

  • pour chaque répertoire source, vous devez créer votre propre module.
  • dans tous les modules, vous devez spécifier le même répertoire de compilation: ${build.directory}

si vous travaillez avec started Jetty ( jetty:run ), alors la recompilation de n'importe quelle classe dans n'importe quel module (avec Maven, IDEA ou Eclipse) conduira au redémarrage de Jetty. Le même comportement que vous obtiendrez pour les ressources modifiées.

1
répondu ursa 2017-11-26 22:43:48