J'ai un projet Gradle avec des dépendances de tiers.Après avoir ajouté la dépendance SQLServer à Gradle, jar ne peut pas trouver de classe principale
Mon pot a fonctionné correctement jusqu'à ce que j'aie ajouté la dépendance de SQLServer.
Voici un aperçu de build.gradle:
group 'MyApp'
version '1.0-SNAPSHOT'
apply plugin: 'java'
apply plugin: 'idea'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
compile 'com.amazonaws:aws-java-sdk:1.11.60'
compile group: 'mysql', name: 'mysql-connector-java', version: '5.1.6'
compile files('mylibraries/ojdbc7.jar')
compile files('mylibraries/postgresql-42.1.4.jar')
compile files('mylibraries/mssql-jdbc-6.2.1.jre8.jar')
}
jar {
from {
configurations.compile.collect {
it.isDirectory() ? it : zipTree(it)
}
}
manifest {
attributes 'Main-Class': 'MainLauncher'
}
}
Tout tombe en panne après compile files('mylibraries/mssql-jdbc-6.2.1.jre8.jar')
a été ajouté aux dépendances. L'erreur est survenue:
Error: Could not find or load main class MainLauncher
Ce qui pourrait être un problème potentiel? Je vous remercie!
Construire le fichier jar - l'extraire ('jar -xvf') et vérifier le fichier 'META-INF/MANIFEST.MF' - si tout va bien. C'est une chance que la création manuelle d'un gros pot salit quelque chose. De plus, il y a un plugin d'ombre pour gradle - qui est bien testé et qui va construire un gros pot correctement. Pourquoi 'MainLauncher' est-il sans nom de paquet? –
Opal
Merci pour votre réponse, opale. Chose amusante, juste une bibliothèque particulière plante l'exécution entière. En dehors de tout cela fonctionne bien. J'ai déjà résolu un problème en utilisant une autre solution open-source. Il n'y a pas de nom de paquet parce que le fichier MainLauncher est situé dans la racine du dossier 'java'. – NickitaX