0

J'essaie de transférer un plugin de build basé sur gradle pour android vers un système de build maven. Jusqu'à présent, j'ai réussi, sauf avec la partie android.Comment importer des classes à partir du paquet `com.android.build.api.transform` dans Maven

Il semble qu'il me manque des classes du paquet com.android.build.api.transform. Bien que je le code

<dependency> 
     <groupId>com.android.tools.build</groupId> 
     <artifactId>gradle</artifactId> 
     <version>2.2.0</version> 
     <type>jar</type> 
    </dependency> 

qui est censé fournir (plutôt indirectement) les classes requises/packages, il semble que cela ne fonctionne pas.

J'ai aussi ajouté

<repositories> 
    <repository> 
     <id>android</id> 
     <name>android</name> 
     <url>https://plugins.gradle.org/m2/</url> 
    </repository> 
</repositories> 

juste au cas où, sans chance. Le projet n'est toujours pas capable de compiler en raison de classes manquantes.

Une idée de ce qui me manque? Je suis très nouveau dans la scène gradle/maven, et je me sens toujours hors de mes eaux avec ces outils.

Pour la référence here is a link au javadoc de cet artefact.

Merci pour votre aide

Répondre

1

L'artefact « gradle » ne contient pas le paquet manquant. Comme vous le mentionnez, cela dépend de manière transitoire d'au moins un artefact qui contient ce paquet, mais uniquement dans la portée 'runtime'. Par conséquent, il ne sera pas disponible pour votre projet sur le chemin de classe de compilation. Quoi qu'il en soit, ajouter la dépendance explicitement dans votre pom.xml est la bonne chose à faire. Une recherche du paquet manquant sur search.maven.org montre que vous avez le choix entre com.android.tools.build:transform-api et com.android.tools.build:gradle-api. Verrouiller l'artefact transform-api révèle qu'il est obsolète et encourage l'utilisation de gradle-api à la place. (La dernière version est '2.0.0-deprecated-use-gradle-api'). J'ai téléchargé le fichier jar gradle-api, qui a en effet le paquet manquant. Alors s'il vous plaît, essayez d'ajouter cet artefact à votre pom.xml place:

<dependency> 
    <groupId>com.android.tools.build</groupId> 
    <artifactId>gradle-api</artifactId> 
    <version>2.3.0</version> 
</dependency> 

Je n'ai pas vérifié la version 2.2.0, mais si pour une raison quelconque voulez utiliser l'ancienne version, il fonctionnera probablement aussi.

+0

En effet, il apparaît là. Pourtant, il semble qu'il a des dépendances manquantes. Il semble que la fonctionnalité réelle est bien cachée – Panayotis