IntelliJ无法找到添加到compileClasspath的依赖项

时间:2017-02-06 04:42:35

标签: intellij-idea gradle dependencies

我正在编写一些Spark代码并编译成一个超级jar。对于该应用程序而言,您通常不希望Spark库位于jar中,因为它们将在群集上提供,并且它们非常重要。典型的诀窍是你的build.gradle看起来像:

configurations {
    provided
}

sourceSets {
    main {
        compileClasspath += configurations.provided
    }
}

dependencies {
    compile 'some.library:lib:0.1'

    provided 'org.apache.spark:spark-core_2.11:2.1.0'
}

这可以从命令行运行。一切都编译完毕,我可以毫无问题地部署到Spark集群。然而,IntelliJ感到困惑并报告了未解决的参考:spark"像import org.apache.spark.api.java.JavaRDD这样的东西。

如何保持jar的依赖性并让IntelliJ保持高兴?

1 个答案:

答案 0 :(得分:0)

我想我找到了解决方案:the idea plugin

configurations {
    provided
}

sourceSets {
    main {
        compileClasspath += configurations.provided
    }
}

idea.module {
    scopes.PROVIDED.plus += [ configurations.provided ]
}

dependencies {
    compile 'some.library:lib:0.1'

    provided 'org.apache.spark:spark-core_2.11:2.1.0'
}

为了这种事情而必须添加一个额外的插件和更多代码构建令人讨厌,但它似乎有效。