J'essaye de créer et exécuter un pot exécutable par gradle. C'est ce que mon gradle actuel ressemble à:Comment créer puis exécuter un fichier exécutable avec des dépendances dans les IDE Intellij, en particulier Android Studio?
task jarTask(type: Jar) {
baseName = 'my-main-class'
from 'build/classes/main'
}
task createJarWithDependencies(type: Jar) {
manifest {
attributes 'Implementation-Title': 'Sample Jar',
'Implementation-Version': 1,
'Main-Class':'com.example.MyMainClass'
}
baseName = "my-main-class-with-dependencies"
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
with jarTask
}
configurations {
jarConfiguration
}
artifacts {
jarConfiguration jarTask
}
// This is the task that I call with ./gradlew to execute my jar
task runMyJar(type: JavaExec) {
classpath files('build/libs/my-main-class-with-dependencies.jar')
main 'com.example.MyMainClass'
args = ["param1","param2"]
outputs.upToDateWhen { false }
}
runMyJar.dependsOn(createJarWithDependencies, build)
je suis arrivé ces approche à partir des réponses de débordement de pile suivant/références ci-dessous: Android Studio export jar with dependencies Android studio - How to use an executable jar file from gradle
Cependant quand je lance ./gradlew clean runMyJar
(ou même juste ./gradlew runMyJar
, je obtenez le message d'erreur suivant:
Error: Could not find or load main class com.example.MyMainClass
Quelqu'un peut-il indiquer la raison pour laquelle mon fichier exécutable ne trouve pas la méthode principale dans ma classe? Y a-t-il quelque chose qui me manque?
Pouvez-vous ajouter votre classe principale? –
Copie possible de l'attribut [Gradle-no main manifest] (https://stackoverflow.com/questions/32567167/gradle-no-main-manifest-attribute) – jrtapsell
Pas exactement une réponse à votre question, mais regardez https://docs.gradle.org/current/userguide/application_plugin.html –