J'utilise AndroidStudio et j'ai ce projet comme indiqué:
Ce qui est à l'intérieur du cercle bleu est myLib. myLib doit également utiliser une bibliothèque externe située à l'intérieur du cercle rouge et un package Apache (cercle vert).
Je souhaite donc que tout cela devienne un fichier .jar unique, afin que je puisse l'utiliser dans d'autres projets.
Un guide étape par étape serait vraiment apprécié. Je suis un débutant dans le monde des développeurs.
Merci!
Ouvrez le fichier build.gradle pour le projet de bibliothèque
Ecrivez deux tâches dans build.gradle - deleteJar et createJar et ajoutez la règle createJar.dependsOn (deleteJar, build)
Le code ci-dessus:
task deleteJar(type: Delete) {
delete 'libs/jars/logmanagementlib.jar'
}
task createJar(type: Copy) {
from('build/intermediates/bundles/release/')
into('libs/jars/')
include('classes.jar')
rename('classes.jar', 'logmanagementlib.jar')
}
createJar.dependsOn(deleteJar, build)
Développez le panneau de niveaux de droite et ouvrez toutes les tâches de votre bibliothèque-> autres. Vous y verrez deux nouvelles tâches - createJar et deleteJar
Une fois la tâche exécutée avec succès, récupérez votre fichier jar généré à partir du chemin mentionné dans la tâche createJar, à savoir libs/xxxx.jar
copier le fichier jar nouvellement généré dans le dossier lib de votre projet requis -> clic droit -> sélectionnez "add as library"
Si vous configurez le code en tant que module brut Java dans Gradle, il est très facile de demander à Gradle de vous fournir un fichier jar contenant le contenu. Ce fichier jar contiendra uniquement votre code, pas les autres bibliothèques Apache dont il dépend. Je recommanderais de le distribuer de cette façon; il est un peu bizarre de regrouper des dépendances dans votre bibliothèque, et il est plus normal que les utilisateurs de ces bibliothèques soient obligés d'inclure ces dépendances eux-mêmes (car sinon, il y a des conflits entre ces projets qui lient déjà des copies de la bibliothèque, peut-être de versions différentes. ) De plus, vous évitez les problèmes de licence potentiels liés à la redistribution du code d'autres personnes si vous publiez votre bibliothèque.
Prenez le code qui doit également être compilé dans un fichier jar et déplacez-le dans un module distinct Java dans Android Studio:
Espérons que votre projet devrait être construit normalement maintenant. Après avoir construit, un fichier jar pour votre bibliothèque Java sera placé dans le répertoire build/libs répertoire dans le répertoire de votre module. Si vous voulez créer le fichier jar à la main, vous pouvez exécuter son jar tâche de création de fichier à partir de la fenêtre Gradle:
Ajoutez simplement ceci à votre build.gradle de votre module Java. Il inclura les bibliothèques dépendantes dans les archives.
mainClassName = "com.company.application.Main"
jar {
manifest {
attributes "Main-Class": "$mainClassName"
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
Cela se traduira par le fichier [nom_du_module]/build/libs/[nom_du_module] .jar.
task deleteJar(type: Delete) {
delete 'libs/mylibrary.jar'
}
task exportjar(type: Copy) {
from('build/intermediates/compile_library_classes/release/')
into('libs/')
include('classes.jar')
rename('classes.jar', 'mylibrary.jar')
}
exportjar.dependsOn(deleteJar, build)
la façon dont j'ai trouvé était de trouver la sortie du compilateur du projet (structure du projet> projet). Recherchez ensuite le dossier conforme du module que vous souhaitez transformer en fichier jar, compressez-le avec Zip et modifiez l'extension de la sortie de Zip en fichier jar.
Si vous exécutez une tâche de classement à partir d'AndroidStudio
assembleRelease
ou via terminal
./gradlew <moduleName>:assembleRelease
alors vous pourrez trouver .aar
dans <modulePath>/build/outputs/aar/<Name>.aar
Après cela, vous pouvez effectuer des opérations supplémentaires (par exemple, créer un .jar
) à l'aide d'outils de ligne de commande.