を使用してコマンドラインで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>