7
votes

Maven choisit uniquement Src / Main / Java ou SRC / Main / Scala en tant que dossier source, jamais tous les deux

J'utilise Eclipse 3.7 W / m2e (installé il y a 2 semaines), avec Java 6 et Scala 2.10.

Lorsque je l'utilise M2e pour mettre à jour la configuration du projet, en fonction de la manière dont j'ai mon fichier .pom configuré, Il choisit toujours src / main / java && src / test / java ou tige src / main / scala && src / Test / scala comme mes dossiers source. J'aimerais que cela soit tous les quatre comme des dossiers de source.

Voici mon fichier .pom xxx

finalement, je voudrais J'aime créer un Uberjar avec toutes les dépendances nécessaires afin qu'il puisse fonctionner sur un serveur qui ne prend pas en charge Scala (mais Java). Le cadre du jeu d'échecs est donné en Java, alors je voudrais utiliser ce côté avec Scala

Je peux simplement revenir à l'utilisation de la fourmi pour construire si Maven continue d'être une douleur.

ps Avec le fichier .pom donné qu'il utilise les dossiers de source Java


0 commentaires

3 Réponses :


4
votes

Vous avez deux options: le premier est de diviser votre projet dans un projet parent avec deux modules, chacun d'entre eux avec son propre POM. C'est la façon la plus naturelle de faire cela avec Maven, mais comme je ne suis pas un utilisateur Scala moi-même, je ne suis pas tout à fait sûr, c'est faisable dans votre configuration.

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.7</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>src/main/scala</source>
              </sources>
            </configuration>
          </execution>
          <execution>
            <id>add-test-source</id>
            <phase>generate-test-sources</phase>
            <goals>
              <goal>add-test-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>src/test/scala</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>


0 commentaires

7
votes

Le plugin scala-maven ( précédemment nommé le Maven-scala-plugin ) nécessite une configuration supplémentaire pour faire des projets mixtes Scala / Java , mais si vous Suivez leurs instructions (copiées ci-dessous), il devrait ajouter tous les répertoires nécessaires à votre chemin de construction.

<plugins>
    <plugin>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>scala-maven-plugin</artifactId>
        <executions>
            <execution>
                <id>scala-compile-first</id>
                <phase>process-resources</phase>
                <goals>
                    <goal>add-source</goal>
                    <goal>compile</goal>
                </goals>
            </execution>
            <execution>
                <id>scala-test-compile</id>
                <phase>process-test-resources</phase>
                <goals>
                    <goal>testCompile</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <executions>
            <execution>
                <phase>compile</phase>
                <goals>
                    <goal>compile</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
</plugins>


2 commentaires

Je reçois des erreurs comme: `exécution de plug-in non couvert par la configuration de cycle de vie: net.alchim31.maven: scala-maven-plugin: 3.1.0: Add-Source (Exécution: Scala-Compile-Compile-Premier, Phase: Processus)`


Avez-vous déjà essayé d'utiliser M2e-Scala ( Github.com/sonatype/m2eclipse-Scala )?



0
votes
  1. Mise à jour de Scala-Maven-Plugin (Scala-Tools.org n'existe plus, depuis 2 ans)
  2. Utilisez l'objectif Add-Source (faites de la même manière que Buily Helper-Maven-Plugin pour Scala uniquement)

    Vous pouvez également stocker vos fichiers .java et .scala sous le même SRC / Main / XXX et SRC / Test / XXX, le compilateur Java Ignore * .cala et le compilateur Scala utilisée à la fois.


0 commentaires