【发布时间】:2021-09-10 13:42:23
【问题描述】:
我有一个混合的 Scala/Java maven 项目,其中应用程序代码、单元和集成测试是用 Java 编写的,但性能测试是用 Scala 编写的。
Scala 性能测试依赖于几个具有@Data Lombok 注释的Java 集成测试类。为了让 getter 和 setter 工作,我必须编译 JavaThenScala,这可以通过 IntelliJ Scala 编译器设置来完成。
我的问题是 - 有没有一种方法可以设置我的 maven 插件来进行 JavaThenScala 编译,而无需调整 IntelliJ 设置,因为我想将代码部署到其他地方?
我正在尝试使用 compileOrder 配置,但它似乎对我不起作用。
我的 Maven 插件:
<build>
<plugins>
<plugin>
<groupId>met.alchim31.maven</groupId>
<artifactId>scala-maven-plugin</artifactId>
<version>4.0.0</version>
<configuration>
<compileOrder>JavaThenScala</compileOrder>
</configuration>
</plugin>
<plugin>
<groupId>io.gatling</groupId>
<artifactId>gatling-maven-plugin</artifactId>
<version>3.1.1</version>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
【问题讨论】:
-
运行
mvn clean package时会发生什么? -
嘿@JRichardsz,我看到
Error: value getVariable is not a member of the Class它位于@Data 注释下。如果我将 @Data 更改为实际的 getter,它可以工作,或者如果我将 IntelliJ 上的 Scala 编译器设置更改为 JavaThenScala 并重新编译它也可以工作 -
我不确定 scala-maven-plugin 能否与 Java 注释处理一起正常工作。
-
你的错误发生在哪里?在你的scala测试中,对吧?如果您分享项目的 mvp 将会很有帮助。一个简单的 spring bean 及其测试。
-
有些奇怪。 mvn package 首先编译所有java类,然后是测试,然后运行测试
标签: java scala maven compilation lombok