我有一个位于src/main/scala/my.cool.package.name/MyTestClass
的scala文件,其中包含scala.reflect.runtime.universe._
的导入。 Maven很好地解决了这个依赖关系,并编译了代码。导入在整个代码中被大量使用,所以我知道依赖实际存在并且Maven正在使用它。
IDEA生成的project-name.iml
文件具有对scala-reflect
的引用,但它将其置于TEST范围内:
<orderEntry type="library" scope="TEST" name="Maven: org.scala-lang:scala-reflect:2.11.8" level="project" />
因为它在TEST中,而源文件没有,所以源文件会生成大量的警告&amp; IDEA中的错误。如果我从该行手动删除scope="TEST"
,IDEA会完全解除依赖关系。问题是这个文件是自动生成的,因此这个更改会经常被删除。
那么,是什么导致scala-reflect
被引入TEST?我没有明确地在reflect
文件中的任何地方引用pom.xml
,所以如果它来自Maven,我不确定如何。有没有办法强制以我想要的方式生成该行?
答案 0 :(得分:2)
尝试添加
<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。