0

当我编译Scala源代码时,它pom.xml可以工作:

<build>
    <sourceDirectory>${project.basedir}/src/main/scala</sourceDirectory>

    <plugins>
        <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>scala-maven-plugin</artifactId>
            <version>4.4.0</version>
            
            <executions>
                <execution>
                    <id>scala-compile-first</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
    [...]           

但不是这个选择:

<build>
    <plugins>
        <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>scala-maven-plugin</artifactId>
            <version>4.4.0</version>
            
            <executions>
                <execution>
                    <id>scala-compile-first</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                    
                    <configuration>
                        <sourceDir>${project.basedir}/src/main/scala</sourceDir>
                        <testSourceDir>${project.basedir}/src/test/scala</testSourceDir>
                    </configuration>
                </execution>
           [...]                

即使插件文档sourceDirtestSourceDir提到了这种用法。

我需要第二种选择,因为我在此执行之后调用了依赖于其他源文件目录的Java编译器。

我也尝试调用add-source目标。没有成功。

4

1 回答 1

0

您试图用错误的东西覆盖 de 配置,我猜${project.basedir}它不会被预期值取代。

您想要的是默认行为,因此您可以简单地删除覆盖

<build>
    <plugins>
        <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>scala-maven-plugin</artifactId>
            <version>4.4.0</version>
            
            <executions>
                <execution>
                    <id>scala-compile-first</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>

更新:检查日志(输出)以查看插件扫描哪个文件夹进行编译。

于 2020-09-30T18:55:03.533 回答