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
Meu projeto tem mais de uma classe com um main
método Como digo ao plug-in Spring Boot Maven qual das classes ele deve usar como classe principal?
Respostas:
Adicione sua classe inicial no seu pom:
ou
fonte
mvn clean package -Dstart-class=com.foo.Application
se quiser especificar dinamicamente usando cuja principal classemvn spring-boot:run -Dstart-class=com.foo.Application
. Isso é válido somente se você não especificou a mainClass no plug-in do pom.Para aqueles que usam Gradle (em vez de Maven):
fonte
Could not set unknown property 'mainClass' for object of type org.springframework.boot.gradle.dsl.SpringBootExtension
.Se você NÃO usar o pom spring-boot-starter-parent, a partir da documentação do Spring :
fonte
Para aqueles que usam Gradle (em vez de Maven), consulte aqui :
fonte
Se você estiver usando spring-boot-starter-parent no seu pom, basta adicionar o seguinte ao seu pom:
Então faça seu pacote mvn.
Consulte esta página de documentos do Spring .
Um aspecto muito importante aqui é mencionar que a estrutura de diretório deve ser src / main / java / nameofyourpackage
fonte
Eu tentei o seguinte código no pom.xml e funcionou para mim
fonte
Desde o Spring Boot 1.5, você pode ignorar a sequência literal de caracteres propensos a erros em pom ou build.gradle. A ferramenta de reembalagem (via plug-in maven ou gradle) selecionará a que você anotou
@SpringBootApplication
. (Consulte esta edição para obter detalhes: https://github.com/spring-projects/spring-boot/issues/6496 )fonte
Eu havia renomeado o meu projeto e ele ainda estava encontrando a
Application
classe antiga no caminho da compilação. Eu o removi na pasta 'build' e estava tudo bem.fonte
Já vi esse problema com Java 1.9 e SpringBoot 1.5.x, quando a classe principal não é especificada explicitamente.
Com o Java 1.8, ele é capaz de encontrar a classe principal sem propriedade explícita e o 'mvn package' funciona bem.
fonte