2017-08-21 1 views
3

J'ai un projet Maven/Spring Boot intégré à IntelliJ. Pour autant que je sache, tout semble bien fonctionner à partir d'IntelliJ.IntelliJ "Run Maven Build" grisé

Je l'ai configuré pour emballer un pot autonome avec Tomcat intégré:

<packaging>jar</packaging> 

J'utilise:

spring-boot-starter-parent 

Alors, je crois comprendre que je ne ai pas besoin " reconditionnement "sous une étiquette d'exécution dans mon fichier pom. Je voudrais commencer à expérimenter avec le déploiement du projet, et je suis allé pour essayer de faire la construction pour obtenir le JAR. Mais la flèche "Run Maven Build" sous lorsque je fais un clic droit sur le projet sous "Maven Projects" est grisée. Des idées sur ce qui pourrait être la cause de ceci ou ce que je devrais vérifier?

Répondre

4

Vous devez sélectionner un plug-in que Intellij peut indiquer à Maven run. Comme vous utilisez Spring Boot et que votre question porte sur "package vers un fichier jar autonome avec Tomcat incorporé" et "déploiement du projet", le plugin que vous souhaitez utiliser est le suivant: spring-boot-maven-plugin.

Donc, si vous ajoutez ce plugin à votre POM comme suit ...

<plugin> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-maven-plugin</artifactId> 
</plugin> 

... vous verrez spring-boot sous Maven Projects > project_name > Plugins.

Lorsque vous sélectionnez un nœud sous spring-boot, le bouton Run sera activé, mais il sera désactivé pour le nœud racine depuis le nœud racine (à savoir votre projet) n'est pas réputé être runnable en soi.

Voici une capture d'écran lors de la sélection du nœud racine (le bouton Exécuter est désactivé):

Run button is disabled

Et voici une capture d'écran lors de la sélection du noeud spring-boot (le bouton Exécuter est activé):

Run button is enabled

En cliquant sur Exécuter Maven Build une fois que vous avez sélectionné spring-boot:run ca utilisez IntelliJ pour appeler l'objectif run de spring-boot-maven-plugin qui démarrera votre application, y compris son conteneur Tomcat intégré.