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
내 프로젝트에는 main
메소드 가있는 둘 이상의 클래스가 있습니다. Spring Boot Maven 플러그인에 어떤 클래스를 기본 클래스로 사용해야하는지 어떻게 알 수 있습니까?
답변
응원단에 시작 수업을 추가하십시오.
<properties>
<!-- The main class to start by executing java -jar -->
<start-class>com.mycorp.starter.HelloWorldApplication</start-class>
</properties>
또는
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.mycorp.starter.HelloWorldApplication</mainClass>
</configuration>
</plugin>
</plugins>
</build>
답변
Maven 대신 Gradle을 사용하는 사람들 :
springBoot {
mainClass = "com.example.Main"
}
답변
spring-boot-starter-parent pom을 사용하지 않으면 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>
답변
Maven 대신 Gradle을 사용하는 사람들은 여기를 참조 하십시오 .
작업의 mainClassName 속성을 사용하여 기본 클래스를 명시 적으로 구성 할 수도 있습니다.
bootJar {
mainClassName = 'com.example.ExampleApplication'
}
또는 스프링 부트 DSL의 mainClassName 속성을 사용하여 메인 클래스 이름을 프로젝트 전체에서 구성 할 수 있습니다.
springBoot {
mainClassName = 'com.example.ExampleApplication'
}
답변
pom에서 spring-boot-starter-parent를 사용하는 경우 간단히 pom에 다음을 추가하십시오.
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
그런 다음 mvn 패키지를 수행하십시오.
참조 이 봄 문서 페이지를 .
여기서 매우 중요한 측면은 디렉토리 구조가 src / main / java / nameofyourpackage이어야한다는 것입니다.
답변
pom.xml에서 다음 코드를 시도해 보았습니다.
<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>
답변
Spring Boot 1.5부터는 오류가 발생하기 쉬운 문자열 리터럴을 pom 또는 build.gradle에서 무시할 수 있습니다. 리 패키징 도구 (maven 또는 gradle 플러그인을 통해)가 주석이 달린 도구를 선택합니다 @SpringBootApplication
. (자세한 내용은이 문제를 참조하십시오 : https://github.com/spring-projects/spring-boot/issues/6496 )
