我正在尝试Cascading
在我的 Hadoop 项目中使用。我正在尝试实现Enterprise Data Workflows with Cascading
书中给出的第一个示例。我已经编写了包含Cascading
相关代码的 java 类,并且我有另一个build.graddle
文件应该编译该 java 类并从中构建 jar 文件。
我的文件夹结构如下:
主文件夹
不耐烦
- 主.java
- 构建.gradle
我的build.gradle
文件如下所示:
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'eclipse'
archivesBaseName = 'impatient'
repositories {
mavenLocal()
mavenCentral()
mavenRepo name: 'conjars', url: 'http://conjars.org/repo/'
}
ext.cascadingVersion = '2.1.0'
dependencies {
compile( group: 'cascading', name: 'cascading-core', version: cascadingVersion )
compile( group: 'cascading', name: 'cascading-hadoop', version: cascadingVersion )
}
jar {
description = "Assembles a Hadoop ready jar file"
doFirst {
into( 'lib' ) {
from configurations.compile
}
}
manifest {
attributes( "Main-Class": "impatient/Main" )
}
}
当我gradle clean jar
从命令提示符运行命令时,我收到构建成功消息。我尝试使用运行此 jar 文件
hadoop jar impatient.jar <input file path> <output file path>
命令,但它给了我Exception in thread "main" java.lang.ClassNotFoundException: impatient.Main
例外。
所以我检查了 jar 文件的内容,发现那个 jar 不包含impatient/Main.class
文件。
请注意,我对 gradle 一无所知。
请有人告诉我gradle脚本是否有任何问题,或者我犯了一些错误。
谢谢 !!!