[JAVA] Comment faire un pot avec l'ancien Hadoop (hadoop-core-0.20.2-cdh3u6) dans Gradle: (Que faire si vous obtenez Impossible de développer ZIP ..)

Cela ne fonctionnait pas avec Hadoop lorsque je déplaçais mon ancien projet vers Gradle, donc une note sur la façon de le résoudre

Avant (échec)

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

Comme un pot gradle

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

J'ai eu une erreur disant que je ne pouvais pas faire de pot.

Après (solution)

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

Ensuite, j'ai pu construire.

Ce qui semble être la cause

Si vous regardez hadoop-core-0.20.2-cdh3u6.pom

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

Et pom est spécifié dans l'élément type. En regardant le comportement, Gradle semble décompresser même si l'élément type est pom, il semble donc qu'une erreur se produira là-bas. Par conséquent, hadoop-ant peut être construit correctement en excluant hadoop-core de hadoop-core afin que la dépendance ne puisse pas être résolue et en prenant un autre hadoop-ant. Il semble.

Le problème a été résolu pour le moment, mais si quelqu'un connaît la cause exacte ou la meilleure solution, merci de me le faire savoir. M (_ _) m

Addenda

Gradle confirmé dans l'environnement d'exploitation suivant

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

Comment faire un pot avec l'ancien Hadoop (hadoop-core-0.20.2-cdh3u6) dans Gradle: (Que faire si vous obtenez Impossible de développer ZIP ..)
Que faire lorsqu'une exception java.io.IOException se produit dans GlassFish
Que faire si vous obtenez Impossible d'enregistrer la table principale dans un fichier après l'importation d'un projet dans Eclipse
Que faire si vous obtenez une erreur gcc dans Docker
Que faire si vous obtenez un avertissement groovy dans Thymeleaf Layout
Que faire si vous mourez avec zip si vous avez pom lors de la création d'un fichier exécutable avec gradle
Que faire si vous obtenez Impossible de localiser le répertoire Gemfile ou .bundle /
Que faire si vous obtenez une erreur de nombre d'arguments erroné dans binding.pry
Que faire si le message d'erreur "Impossible de trouver un moteur d'exécution JavaScript" s'affiche lors du démarrage du serveur rails
Que faire si vous obtenez une erreur «302» dans le code de test du contrôleur dans Rails
Comment créer un fichier jar sans dépendances dans Maven
Que faire si vous vous fâchez contre OpenSSL avec Pyenv Install
[Rails] Que faire si vous ne pouvez pas obtenir de paramètres avec form_with
[Maven] Que faire si on vous demande d’incorporer dans la guerre un fichier jar qui n’est pas dans le référentiel distant
Que faire si vous sélectionnez un JRE dans Eclipse et obtenez "Le JRE sélectionné ne prend pas en charge le niveau de conformité actuel 11"
Que faire si vous obtenez une erreur de bibliothèque partagée JNI lorsque vous essayez de créer avec Eclipse
Si vous voulez créer un fichier zip avec Ruby, c'est rubyzip.
Que faire si vous recevez une alerte de vulnérabilité MiniMagick sur GitHub
Que faire si vous entrez gem'bcrypt 'dans votre Gemfile et obtenez une erreur avec l'installation du bundle
Que faire si l'opération non autorisée s'affiche lors de l'exécution d'une commande dans le terminal
Que faire si les modifications ne sont pas reflétées dans le fichier manifeste JAR
Que faire si vous obtenez une exception javax.net.ssl.SSLHandshakeException: connexion de l'hôte distant fermée pendant l'établissement de liaison dans IBM JDK
Que faire si vous créez accidentellement un modèle
Que faire si vous obtenez une erreur NoClassDefFoundError lorsque vous essayez d'exécuter eclipse sur Java 9
Comment gérer les erreurs dans Rails? Impossible de trouver un runtime JavaScript.
[Java] Que faire si vous obtenez une erreur dans Eclipse disant "Non autorisé au niveau source inférieur à 1.X"
Que faire si vous obtenez une erreur indiquant "Veuillez saisir une valeur valide" lors de l'obtention avec Rails datetime_field
Que faire si vous avez installé Ruby avec rbenv mais que la version ne change pas
Comment charger une bibliothèque à partir d'un fichier JAR avec VSCode << Comment ne pas utiliser Maven / Gradle >>
[Tutoriel Rails Chapitre 2] Que faire lorsque vous faites une erreur dans le nom de la colonne
[Rails] Que faire si vous ne pouvez pas obtenir de message d'erreur avec la méthode des erreurs
Que faire si vous obtenez une erreur avec l'authentification de base pendant le code de test Rails
Que faire si vous obtenez une [Une requête HTTP a pris trop de temps à se terminer.] Erreur dans Docker.
Que faire quand git status indique Modifications non préparées pour la validation: après git add.
[Rails] Que faire si les données ne sont pas enregistrées dans la base de données
Que faire si vous oubliez votre mot de passe root sur CentOS7
Que faire si l'application dont le nom est appName est déjà enregistrée. Lorsque vous essayez de démarrer GlassFish
Que faire si vous obtenez l'erreur Trop long sans sortie (dépassé 10m0s) dans CircleCI
Que faire lorsque le préfixe c n'est pas lié dans JSP
Exécutable serveur avec Spring gradle Comment créer JAR et WAR
Que faire si le message "Un serveur est déjà en cours d'exécution" s'affiche. Erreur lors de la tentative de démarrage du serveur rails
Que faire si vous avez activé Utiliser le moteur basé sur WSL2 dans Docker Desktop avec une installation WSL2 insuffisante
Comment traduire le message d'erreur en japonais (que faire si vous ne pouvez pas vous connecter pour une raison quelconque)
Comment faire fonctionner @Transactional qui ne fonctionne pas si vous ne l'utilisez pas correctement
Comment obtenir l'ID d'un utilisateur qui s'est authentifié avec Firebase dans Swift
Comment sortir un pot avec la classe principale spécifiée par gradle dans IntellijIDEA
Que faire quand Pour installer la version manquante, exécutez `gem install bundler: 2.1.4`
Que faire quand est invalide car il ne commence pas par un "-"