我有一个位于src/main/scala/my.cool.package.name/MyTestClass的scala文件,它为scala.reflect.runtime.universe._提供了一个导入。Maven很好地解决了这种依赖关系,代码编译。导入在整个代码中大量使用,因此我知道依赖项实际上存在,而且Maven正在使用它。
IDEA生成的project-name.iml文件具有对scala-reflect的引用,但它将其放在测试范围中:
<orderEntry type="library" scope="TEST" name="Maven: org.scala-lang:scala-reflect:2.11.8" level="project" />因为它正在测试中,而源文件没有测试,所以源文件会生成大量的警告和错误。如果我手动从该行中删除scope="TEST",IDEA就可以很好地解决依赖关系。问题是这个文件是自动生成的,所以这个更改经常被删除。
那么,是什么导致scala-reflect作为测试引入的呢?我没有在我的reflect文件中任何地方显式引用pom.xml,所以如果它来自Maven,我不确定它是如何产生的。有没有办法迫使这条线以我想要的方式生成?
发布于 2017-11-13 20:07:53
试着添加
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-reflect</artifactId>
<version>2.12.4<!--your version of Scala--></version>
<scope>compile<!--runtime--></scope>
</dependency>敬pom.xml。
https://stackoverflow.com/questions/47269133
复制相似问题