with starter run plugin mvn java spring maven executable-jar spring-boot

java - run - spring-boot-starter-parent



¿Cómo le digo a Spring Boot qué clase principal usar para el archivo ejecutable? (9)

Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.0.1.RELEASE:repackage failed: Unable to find a single main class from the following candidates

Mi proyecto tiene más de una clase con un método main . ¿Cómo le digo al plugin Spring Boot Maven cuál de las clases debería usar como clase principal?


Agregue su clase de inicio en su pom:

<properties> <!-- The main class to start by executing java -jar --> <start-class>com.mycorp.starter.HelloWorldApplication</start-class> </properties>


Cambié el nombre de mi proyecto y seguía encontrando la antigua clase de Application en la ruta de compilación. Lo eliminé en la carpeta ''compilar'' y todo estaba bien.


Desde Spring Boot 1.5, puede completar ignorar el literal de cadena propenso a error en pom o build.gradle. La herramienta de reempaquetado (a través de maven o plugin de gradle) seleccionará la que se anotó con @SpringBootApplication por usted. (Consulte este problema para más detalles: https://github.com/spring-projects/spring-boot/issues/6496 )


Para aquellos que usan Gradle (en lugar de Maven), haciendo referencia here :

La clase principal también se puede configurar explícitamente utilizando la propiedad mainClassName de la tarea:

bootJar { mainClassName = ''com.example.ExampleApplication'' }

Alternativamente, el nombre de la clase principal se puede configurar en todo el proyecto utilizando la propiedad mainClassName de Spring Boot DSL:

springBoot { mainClassName = ''com.example.ExampleApplication'' }


Para aquellos que usan Gradle (en lugar de Maven):

springBoot { mainClass = "com.example.Main" }


Probé el siguiente código en pom.xml y funcionó para mí

<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>myPackage.HelloWorld</mainClass> </configuration> </plugin> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <fork>true</fork> <executable>D:/jdk1.8/bin/javaw.exe</executable> </configuration> </plugin> </plugins>


Si NO usa el pom spring-boot-starter-parent, entonces de la documentación de Spring :

<plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>1.1.3.RELEASE</version> <configuration> <mainClass>my.package.MyStartClass</mainClass> <layout>ZIP</layout> </configuration> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin>


Si está utilizando spring-boot-starter-parent en su pom, simplemente agregue lo siguiente a su pom:

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

Luego haz tu paquete mvn.

Vea esta página de doc . De primavera .

Un aspecto muy importante es mencionar que la estructura del directorio debe ser src / main / java / nameofyourpackage


Usé gradlew gradlew en gradle lugar gradle y funcionó para mí.