0

存在一些基于代码的类似问题,但我想以更笼统的方式问。

假设有java源代码和scala源代码,好像scala-maven-plugin是要加的。

  1. 那么是否有一个默认配置是首先编译的,scala 还是 java?
  2. 如果我们想让scala代码依赖java,或者相反,怎么做呢?(比如scala-compile-first在插件中?)
  3. 是否有可能一些scala代码依赖于java,而一些java代码也依赖于scala?
4

1 回答 1

1
  1. 如果两个编译都在其默认阶段运行,则首先编译 java
  2. scala 依赖于 java,无需自定义,这是默认行为。如果 java 依赖于 scala,你应该在 like 之前的一个阶段强制编译 scala 代码process-resources
  3. 是的,您可以“混合”scala/java,在这种情况下,scala 编译器应该在之前运行并注意 java 源(scala 编译器将解析它们以提取 API)。和 scala first 一样的配置
        <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>
    ...

例如,请参阅文档:Mixed Java/Scala Projects – scala-maven-plugin或集成测试scala-maven-plugin/src/it at master · davidB/scala-maven-plugin

于 2021-08-25T17:16:37.220 回答