You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置scala-maven-plugin仅编译Scala源码?

解决Scala-Maven插件仅编译Scala源码的配置方案

要实现先编译Scala代码、再编译Java代码的两步编译流程,核心是通过配置scala-maven-plugin的源码目录范围,限制其仅处理Scala文件,同时调整编译顺序确保Java代码能依赖Scala的编译结果。具体配置如下:

1. 配置scala-maven-plugin仅编译Scala源码

通过<sourceDirs>参数明确指定插件只扫描src/main/scala目录,覆盖默认的同时包含Java源码目录的设置。同时将插件执行阶段设为process-sources,确保在Java编译前完成Scala代码的编译。

<plugin>
    <groupId>net.alchim31.maven</groupId>
    <artifactId>scala-maven-plugin</artifactId>
    <version>4.8.0</version>
    <executions>
        <execution>
            <id>compile-scala</id>
            <phase>process-sources</phase>
            <goals>
                <goal>compile</goal>
            </goals>
            <configuration>
                <sourceDirs>
                    <sourceDir>src/main/scala</sourceDir>
                </sourceDirs>
                <!-- 如需处理测试Scala代码,可添加以下配置 -->
                <!-- <testSourceDirs>
                    <testSourceDir>src/test/scala</testSourceDir>
                </testSourceDirs> -->
            </configuration>
        </execution>
    </executions>
</plugin>

2. 配置maven-compiler-plugin仅编译Java源码

指定插件仅扫描.java文件,并确保classpath包含Scala编译后的输出目录,保证Java代码能找到依赖的Scala类。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.11.0</version>
    <executions>
        <execution>
            <id>compile-java</id>
            <phase>compile</phase>
            <goals>
                <goal>compile</goal>
            </goals>
            <configuration>
                <includes>
                    <include>**/*.java</include>
                </includes>
                <classpathElements>
                    <classpathElement>${project.build.outputDirectory}</classpathElement>
                </classpathElements>
            </configuration>
        </execution>
    </executions>
</plugin>

补充说明

  • 插件版本可根据项目实际需求调整,确保scala-maven-plugin版本与项目使用的Scala版本兼容。
  • 若需处理测试代码,可在两个插件中分别添加testCompile的执行配置,逻辑与主代码编译一致。

内容的提问来源于stack exchange,提问作者diziaq

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 18:31:06