IntelliJ IDEA .iml文件向依赖项添加了错误的范围

时间:2017-11-13 16:31:11

标签: scala maven intellij-idea

我有一个位于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,我不确定如何。有没有办法强制以我想要的方式生成该行?

1 个答案:

答案 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。