0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Gradleで古いHadoop (hadoop-core-0.20.2-cdh3u6) を含めたjarを作る方法 : (Could not expand ZIP .. と出るときの対処法)

Last updated at Posted at 2017-01-08

古いプロジェクトをGradleに移していたときにHadoop周りでうまくいかなかったので、その解決方法のメモ

ビフォー(失敗)

dependencies{
    compile group: 'org.apache.hadoop', name: 'hadoop-core', version: '0.20.2-cdh3u6'
}

jar {
    manifest {
        attributes(
	    'Main-Class': 'path.to.Main',
	    'Class-Path' : '.' 
        )
    }
    exclude 'META-INF/*.RSA', 'META-INF/*.SF','META-INF/*.DSA'
    from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}

として、gradle jarすると

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':jar'.
> Could not expand ZIP '...\.gradle\caches\modules-2\files-2.1\com.cloudera.cdh\hadoop-ant\0.20.2-cdh3u6\...\hadoop-ant-0.20.2-cdh3u6.pom'.

というエラーが出てきてjarが作れなかった。

アフター(解決)

dependencies{
    compile (group: 'org.apache.hadoop', name: 'hadoop-core', version: '0.20.2-cdh3u6'){
        exclude group: 'com.cloudera.cdh', module: 'hadoop-ant'
    }
    compile group: 'com.cloudera.cdh', name: 'hadoop-ant', version: '0.20.2-cdh3u6'
}

とするとビルドできた。

原因と思われるもの

hadoop-core-0.20.2-cdh3u6.pom を見ると

    <dependency>
      <groupId>com.cloudera.cdh</groupId>
      <artifactId>hadoop-ant</artifactId>
      <type>pom</type>
    </dependency>

とあり、type要素にpomが指定されている。
挙動をみるとGradleはtype要素がpomでもunzipしているようなので、そこでエラーになってしまうようだ。
そこで hadoop-ant については hadoop-core から依存関係を解決されないよう除外して、別途 hadoop-ant をとりにいくことでちゃんとビルドできるようになった。ようだ。

とりあえず課題は解決したのですが、的確な原因やより良い解決策をご存知の方がいらっしゃいましたらご教示ください m(_ _)m

補遺

Gradleは以下の動作環境で確認

------------------------------------------------------------
Gradle 2.14.1
------------------------------------------------------------

Build time:   2016-07-18 06:38:37 UTC
Revision:     d9e2113d9fb05a5caabba61798bdb8dfdca83719

Groovy:       2.4.4
Ant:          Apache Ant(TM) version 1.9.6 compiled on June 29 2015
JVM:          1.8.0_77 (Oracle Corporation 25.77-b03)
OS:           Windows 7 6.1 amd64
------------------------------------------------------------
Gradle 2.0
------------------------------------------------------------

Build time:   2014-07-01 07:45:34 UTC
Build number: none
Revision:     b6ead6fa452dfdadec484059191eb641d817226c

Groovy:       2.3.3
Ant:          Apache Ant(TM) version 1.9.3 compiled on December 23 2013
JVM:          1.8.0_77 (Oracle Corporation 25.77-b03)
OS:           Windows 7 6.1 amd64
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?