2

を使用してコマンドラインでmavenにscalaソースをコンパイルさせる唯一の方法はmvn、実行を明示的に追加することscala-maven-pluginです。

  <plugin>
    <groupId>net.alchim31.maven</groupId>
    <artifactId>scala-maven-plugin</artifactId>
    <version>3.0.1</version>
    <executions>
      <execution>
        <goals>
          <goal>compile</goal>
          <goal>testCompile</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <args>
        <arg>-deprecation</arg>
        <arg>-unchecked</arg>
      </args>
      <jvmArgs>
        <jvmArg>-Xms128m</jvmArg>
        <jvmArg>-Xmx1024m</jvmArg>
      </jvmArgs>
    </configuration>
  </plugin>

ただし、Eclipseはこれらの実行を好みません。また、次のエラーが発生します。

ライフサイクル構成でカバーされていないプラグインの実行:net.alchim31.maven:scala-maven-plugin:3.0.1:compile(実行:デフォルト、フェーズ:コンパイル)

ライフサイクル構成でカバーされていないプラグインの実行:net.alchim31.maven:scala-maven-plugin:3.0.1:testCompile(実行:デフォルト、フェーズ:テストコンパイル)

Eclipseは、目標を無視されたものとして永続的にマークすることを提案していますが、これは、多くの醜いゴミが私のpomに追加されることを意味します。つまり、XMLはすでに見づらいです。ソースをコンパイルするようにプロジェクトを構成するためのより良い方法はありますmvnか?以下はEclipseが追加するものです。

<pluginManagement>
        <plugins>
            <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>
                                        net.alchim31.maven
                                    </groupId>
                                    <artifactId>
                                        scala-maven-plugin
                                    </artifactId>
                                    <versionRange>
                                        [3.0.1,)
                                    </versionRange>
                                    <goals>
                                        <goal>testCompile</goal>
                                        <goal>compile</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <ignore></ignore>
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
4

1 に答える 1

8

m2eでは、特定のm2eプラグインをインストールする必要があります。scala-maven-plugin用のものはm2e-scalaです:https ://github.com/sonatype/m2eclipse-scala

scala-maven-pluginを無効にするpluginManagementを削除し、m2e-scalahttp://alchim31.free.fr/m2e-scala/update-siteをインストールし ます

ところで、最新のscala-maven-pluginは3.0.1ではなく3.1.0です。

乾杯、

ステファン

于 2012-12-22T02:19:36.117 に答える