[JAVA] So erstellen Sie ein Glas mit dem alten Hadoop (hadoop-core-0.20.2-cdh3u6) in Gradle: (Was tun, wenn Sie ZIP nicht erweitern können?)

Es funktionierte nicht um Hadoop herum, als ich mein altes Projekt nach Gradle verlegte, also ein Hinweis, wie man es löst

Vorher (Fehler)

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) }
}

Als Gradle Glas

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'.

Ich habe eine Fehlermeldung erhalten, dass ich kein Glas herstellen konnte.

Nach (Lösung)

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'
}

Dann konnte ich bauen.

Was scheint die Ursache zu sein

Wenn Sie sich hadoop-core-0.20.2-cdh3u6.pom ansehen

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

Und pom wird im Typelement angegeben. Wenn man sich das Verhalten ansieht, scheint Gradle auch dann zu entpacken, wenn das Typelement pom ist. Es scheint also, dass dort ein Fehler auftritt. Daher wurde es für Hadoop-Ant möglich, richtig zu bauen, indem Hadoop-Core vom Hadoop-Core ausgeschlossen wurde, so dass die Abhängigkeit nicht aufgelöst werden konnte und Hadoop-Ant separat erhalten wurde. Es scheint.

Das Problem ist vorerst gelöst, aber wenn jemand die genaue Ursache oder bessere Lösung kennt, lassen Sie es mich bitte wissen. M (_ _) m

Nachtrag

Gradle bestätigte in der folgenden Betriebsumgebung

------------------------------------------------------------
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

Recommended Posts

So erstellen Sie ein Glas mit dem alten Hadoop (hadoop-core-0.20.2-cdh3u6) in Gradle: (Was tun, wenn Sie ZIP nicht erweitern können?)
Was tun, wenn in GlassFish eine java.io.IOException auftritt?
Was tun, wenn Sie die Mastertabelle nach dem Importieren eines Projekts in Eclipse nicht in einer Datei speichern konnten?
Was tun, wenn in Docker ein gcc-Fehler auftritt?
Was tun, wenn Sie in Thymeleaf Layout eine groovige Warnung erhalten?
Was tun, wenn Sie mit Reißverschluss sterben, wenn Sie Pom haben, wenn Sie ein ausführbares Glas mit Gradle erstellen?
Was tun, wenn Sie Gemfile oder .bundle / directory nicht finden konnten?
Was tun, wenn in bind.pry eine falsche Anzahl von Argumenten angezeigt wird?
Was tun, wenn die Fehlermeldung "JavaScript-Laufzeit konnte nicht gefunden werden" angezeigt wird? Beim Starten des Rails-Servers
Was tun, wenn im Testcode der Steuereinheit in Rails der Fehler "302" angezeigt wird?
So erstellen Sie eine JAR-Datei ohne Abhängigkeiten in Maven
Was tun, wenn Sie sich über OpenSSL mit pyenv install ärgern?
[Rails] Was tun, wenn Sie mit form_with keine Parameter abrufen können?
[Maven] Was tun, wenn Sie aufgefordert werden, ein Glas, das sich nicht im Remote-Repository befindet, in den Krieg aufzunehmen?
Was tun, wenn Sie in Eclipse eine JRE auswählen und "Die ausgewählte JRE unterstützt die aktuelle Konformitätsstufe 11 nicht" erhalten?
Was tun, wenn beim Versuch, mit Eclipse zu erstellen, ein Fehler in der gemeinsam genutzten JNI-Bibliothek auftritt?
Wenn Sie mit Ruby eine Zip-Datei erstellen möchten, ist dies Rubyzip.
Was tun, wenn auf GitHub eine MiniMagick-Sicherheitsanfälligkeitswarnung angezeigt wird?
Was tun, wenn Sie gem'bcrypt 'in Ihre Gemfile eingeben und bei der Bundle-Installation eine Fehlermeldung erhalten?
Was tun, wenn der Vorgang nicht zulässig ist, wenn ein Befehl im Terminal ausgeführt wird?
Was tun, wenn die Änderungen nicht in der JAR-Manifestdatei berücksichtigt werden?
Was tun, wenn eine javax.net.ssl.SSLHandshakeException angezeigt wird: Remote-Host hat während des Handshakes im IBM JDK die Verbindung geschlossen
Was tun, wenn Sie versehentlich ein Modell erstellen?
Was tun, wenn beim Versuch, Eclipse unter Java 9 auszuführen, ein NoClassDefFoundError angezeigt wird?
Umgang mit Fehlern in Rails s konnte keine JavaScript-Laufzeit finden.
[Java] Was tun, wenn in Eclipse die Fehlermeldung "Nicht zulässig auf Quellenebene unter 1.X" angezeigt wird?
Was tun, wenn beim Abrufen von Rails datetime_field die Fehlermeldung "Bitte geben Sie einen gültigen Wert ein" angezeigt wird?
Was tun, wenn Sie Ruby mit rbenv installiert haben, die Version sich jedoch nicht ändert?
So laden Sie eine Bibliothek aus einer JAR-Datei mit VSCode << So verwenden Sie Maven / Gradle nicht >>
[Rails Tutorial Kapitel 2] Was tun, wenn Sie einen Fehlern im Spaltennamen machen?
[Schienen] Was tun, wenn mit der Fehlermethode keine Fehlermeldung angezeigt wird?
Was tun, wenn während des Rails-Testcodes ein Fehler bei der Standardauthentifizierung auftritt?
Was tun, wenn Sie eine [HTTP-Anforderung hat zu lange gedauert] Fehler in Docker.
Was tun, wenn der Git-Status besagt, dass Änderungen nicht für das Festschreiben bereitgestellt wurden: Nach dem Hinzufügen des Git.
[Rails] Was tun, wenn keine Daten in der Datenbank registriert sind?
Was tun, wenn Sie Ihr Root-Passwort unter CentOS7 vergessen haben?
Was tun, wenn Sie eine Anwendung mit dem Namen erhalten? AppName ist bereits registriert. Wenn Sie versuchen, GlassFish zu starten
Was tun, wenn in CircleCI der Fehler zu lang ohne Ausgabe (über 10 m0s) angezeigt wird?
Was tun, wenn das Präfix c in JSP nicht gebunden ist?
Server mit Spring Gradle ausführbar So erstellen Sie JAR und WAR
Was tun, wenn die Meldung "Ein Server läuft bereits" angezeigt wird. Fehler beim Versuch, den Rails-Server zu starten
Was tun, wenn Sie aktiviert haben? Verwenden Sie die WSL2-basierte Engine in Docker Desktop mit unzureichender WSL2-Installation
So übersetzen Sie die Fehlermeldung ins Japanische (Was tun, wenn Sie sich aus irgendeinem Grund nicht anmelden können)
So funktioniert @Transactional, das nicht funktioniert, wenn Sie es falsch verwenden
So erhalten Sie die ID eines Benutzers, der sich in Swift bei Firebase authentifiziert hat
So geben Sie ein Glas mit der von gradle in IntellijIDEA angegebenen Hauptklasse aus
Was tun, wenn Um die fehlende Version zu installieren, führen Sie `gem install bundler: 2.1.4` aus
Was zu tun ist, wenn es ungültig ist, weil es nicht mit einem '-' beginnt