问题描述:

java、scala混用的情况下,maven打包,遇到找不到符号的报错

原因:

若在java代码中调用了scala代码,则需先编译scala代码,后编译java代码。

解决方法(亲测):

  1. <build>
  2. <plugins>
  3. <plugin>
  4. <groupId>org.scala-tools</groupId>
  5. <artifactId>maven-scala-plugin</artifactId>
  6. <version>2.15.2</version>
  7. <executions>
  8. <execution>
  9. <id>compile-scala</id>
  10. <phase>generate-sources</phase>
  11. <goals>
  12. <goal>add-source</goal>
  13. <goal>compile</goal>
  14. </goals>
  15. </execution>
  16. <execution>
  17. <id>test-compile-scala</id>
  18. <phase>test-compile</phase>
  19. <goals>
  20. <goal>add-source</goal>
  21. <goal>testCompile</goal>
  22. </goals>
  23. </execution>
  24. </executions>
  25. <configuration>
  26. <scalaVersion>2.11.0</scalaVersion>
  27. <recompileMode>incremental</recompileMode>
  28. <args>
  29. <arg>-unchecked</arg>
  30. <arg>-deprecation</arg>
  31. <arg>-feature</arg>
  32. </args>
  33. </configuration>
  34. </plugin>
  35. <plugin>
  36. <groupId>net.alchim31.maven</groupId>
  37. <artifactId>scala-maven-plugin</artifactId>
  38. <version>3.2.2</version>
  39. <executions>
  40. <execution>
  41. <id>compile-scala</id>
  42. <phase>generate-sources</phase>
  43. <goals>
  44. <goal>add-source</goal>
  45. <goal>compile</goal>
  46. </goals>
  47. </execution>
  48. </executions>
  49. </plugin>
  50. </plugins>
  51. </build>