gpt4 book ai didi

scala - 提供的依赖未能提供

转载 作者:可可西里 更新时间:2023-11-01 14:47:17 25 4
gpt4 key购买 nike

我尝试使用 Gradle 构建一个 Scalding(Scala 中的 hadoop 抽象层)项目。

看起来像 Hadoop became a provided dependency在最新版本中,它需要一些解决方法。

所以我像这样修补了我的 build.gradle 脚本:

apply plugin: 'scala'
apply plugin: 'idea'
configurations {
provided
}
sourceSets {
main { compileClasspath += configurations.provided }
}
repositories {
mavenLocal()
mavenCentral()
maven{
url 'http://conjars.org/repo/'
}
}
ext.cascadingVersion = '2.1.6'
ext.hadoopVersion = '1.1.2'
dependencies {
compile 'org.scala-lang:scala-compiler:2.9.2'
compile 'org.scala-lang:scala-library:2.9.2'
compile 'bixo:bixo-core:0.9.1'
compile 'org.testng:testng:6.8.7'
testCompile 'org.scala-tools.testing:specs:1.6.2.2_1.5.0'
compile( 'com.twitter:scalding_2.9.2:0.8.1' )
compile( group: 'cascading', name: 'cascading-core', version: cascadingVersion )
compile( group: 'cascading', name: 'cascading-hadoop', version: cascadingVersion )
provided "org.apache.hadoop:hadoop-client:${hadoopVersion}"
}
jar {
description = "Assembles a Hadoop-ready JAR file"
doFirst {
into( 'lib' ) {
from configurations.compile
}
}
manifest {
attributes( "Main-Class": "com.Crawler" )
}
}

我认为这可以解决问题。但是我在尝试构建时不断收到以下错误:

[ant:scalac] Element '/Users/tkmafj4/Projects/AIT/Crawler/build/resources/main' does not exist.
[ant:scalac] scala.tools.nsc.symtab.Types$TypeError: class file needed by Source is missing.
[ant:scalac] reference value hadoop of package org.apache refers to nonexisting symbol.

这看起来很像我的配置中缺少某些东西。

如何检查是否正在获取源?

编译它的正确解决方法是什么?

最佳答案

hadoop成为cascading的“provided”依赖意味着依赖cascading将不再拉入hadoop,因为 hadoop 旨在由目标环境或由创建最终可部署存档的任何人提供。如果 hadoop 依赖项需要进入您的胖 Jar,您需要使其(至少)成为 runtime 依赖项。但是由于编译似乎存在一些问题,我会尝试使其成为 compile 依赖项。

如果 hadoop 依赖项应该在编译类路径上而不是在 fat Jar 中,您需要添加类似 sourceSets.main.compileClasspath += configurations.provided.

PS:您的胖 Jar 任务需要打包 configurations.runtime 而不是 configurations.compile,并且 doFirst { 行(以及作为相应的右大括号)应该被删除。

关于scala - 提供的依赖未能提供,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23018342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com