Printemps de Démarrage + Gradle: comment construire un exécutable jar
Je suis en train de construire un exécutable jar au Printemps de Démarrage + Gradle projet, mais pour l'instant rien ne fonctionne. Ici est la plus simple possible de la structure. Éventuellement, il manque quelque chose dans Gradle de configuration.
Gradle:
buildscript {
ext {
springBootVersion = '1.5.8.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
jar {
manifest {
attributes 'Main-Class': 'com.example.demo.DemoApplication'
}
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
}
dependencies {
compile('org.springframework.boot:spring-boot-starter-web')
}
Du fichier de configuration principal:
@RestController
@SpringBootApplication
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@GetMapping(value = "/")
public String index() {
return "index";
}
}
Quand j'ai couru le fichier jar comme java -jar 1.jar j'ai reçu cette exception:
[main] ERROR org.springframework.boot.SpringApplication - Applicati
on startup failed
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to proces
s import candidates for configuration class [com.example.demo.DemoApplication];
nested exception is java.lang.IllegalArgumentException: No auto configuration cl
asses found in META-INF/spring.factories. If you are using a custom packaging, m
ake sure that file is correct.
at org.springframework.context.annotation.ConfigurationClassParser.proce
ssDeferredImportSelectors(ConfigurationClassParser.java:556)
at org.springframework.context.annotation.ConfigurationClassParser.parse
(ConfigurationClassParser.java:185)
at org.springframework.context.annotation.ConfigurationClassPostProcesso
r.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:308)
at org.springframework.context.annotation.ConfigurationClassPostProcesso
r.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:228)
at org.springframework.context.support.PostProcessorRegistrationDelegate
.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.ja
va:272)
at org.springframework.context.support.PostProcessorRegistrationDelegate
.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:92)
at org.springframework.context.support.AbstractApplicationContext.invoke
BeanFactoryPostProcessors(AbstractApplicationContext.java:687)
at org.springframework.context.support.AbstractApplicationContext.refres
h(AbstractApplicationContext.java:525)
at org.springframework.boot.context.embedded.EmbeddedWebApplicationConte
xt.refresh(EmbeddedWebApplicationContext.java:122)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.
java:693)
at org.springframework.boot.SpringApplication.refreshContext(SpringAppli
cation.java:360)
at org.springframework.boot.SpringApplication.run(SpringApplication.java
:303)
at org.springframework.boot.SpringApplication.run(SpringApplication.java
:1118)
at org.springframework.boot.SpringApplication.run(SpringApplication.java
:1107)
at com.example.demo.DemoApplication.main(DemoApplication.java:13)
Caused by: java.lang.IllegalArgumentException: No auto configuration classes fou
nd in META-INF/spring.factories. If you are using a custom packaging, make sure
that file is correct.
at org.springframework.util.Assert.notEmpty(Assert.java:277)
at org.springframework.boot.autoconfigure.AutoConfigurationImportSelecto
r.getCandidateConfigurations(AutoConfigurationImportSelector.java:153)
at org.springframework.boot.autoconfigure.AutoConfigurationImportSelecto
r.selectImports(AutoConfigurationImportSelector.java:95)
at org.springframework.context.annotation.ConfigurationClassParser.proce
ssDeferredImportSelectors(ConfigurationClassParser.java:547)
... 14 common frames omitted
Ce qui ne va pas?
Vous devez vous connecter pour publier un commentaire.
J'ai créé un projet avec toutes les sources que vous avez fournis. En cours d'exécution "gradle construire" à partir de la borne, la commutation de l' /build/libs, puis en exécutant "java-jar artifactname" fonctionne très bien.
Avez-vous essayé de le nettoyer et de le recompiler? La Version de Gradle utilisez-vous?
En Boot 2.x, le bootJar et bootWar tâches sont responsables pour l'emballage de l'application.
La bootJar tâche est responsable de la création du fichier jar exécutable. Il est créé automatiquement une fois le plugin java est appliquée.
Dans le cas où le fichier exécutable jar/war fichier n'est pas généré d'exécuter le ci-dessous gradle tâche manuellement.
De même, bootWar génère un exécutable fichier war et sera créé une fois que la guerre plugin est appliquée.
Nous pouvons exécuter le bootWar tâche à l'aide de:
Noter que pour le Printemps de Démarrage 2.x, nous avons besoin d'utiliser Gradle 4.0 ou version ultérieure.
Au printemps de démarrage, vous pouvez directement créer un fichier jar exécutable par
S'il vous plaît essayer
Il va créer pot avec de nom myapp-version.jar
N' ./myapp-version.jar à partir de la ligne de commande.il exécutera
Référer lien suivant pour plus d'info. https://docs.spring.io/spring-boot/docs/current/reference/html/deployment-install.html
J'ai récemment essayé un Ressort de démarrage de l'application avec 2.1.4.Version avec Gradle construire.
J'ai exécuté la commande suivante à partir du répertoire dans Windows CMD.
(sur requis JDK8 installé dans le système), j'ai pu voir le JAR généré sous,
Espère que cela aide bien que les personnes âgées question.
Référence: