[SPRING] Spring Boot에게 어떤 메인 클래스를 실행 가능한 jar 파일로 사용할 지 알려주려면 어떻게해야합니까?
SPRINGSpring Boot에게 어떤 메인 클래스를 실행 가능한 jar 파일로 사용할 지 알려주려면 어떻게해야합니까?
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 플러그인에게 어떤 클래스를 기본 클래스로 사용해야하는지 어떻게 알 수 있습니까?
해결법
-
==============================
1.pom에 시작 클래스를 추가하십시오.
pom에 시작 클래스를 추가하십시오.
<properties> <!-- The main class to start by executing java -jar --> <start-class>com.mycorp.starter.HelloWorldApplication</start-class> </properties>
-
==============================
2.Maven 대신 Gradle을 사용하는 경우 :
Maven 대신 Gradle을 사용하는 경우 :
springBoot { mainClass = "com.example.Main" }
-
==============================
3.spring-boot-startter-parent pom을 사용하지 않는다면, Spring 문서에서 :
spring-boot-startter-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>
-
==============================
4.pom에 spring-boot-startter-parent를 사용하는 경우 다음을 pom에 추가하기 만하면됩니다.
pom에 spring-boot-startter-parent를 사용하는 경우 다음을 pom에 추가하기 만하면됩니다.
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
그런 다음 mvn 패키지를 수행하십시오.
이 Spring 문서 페이지를 참조하십시오.
여기에서 매우 중요한 점은 디렉토리 구조가 src / main / java / nameofyourpackage이어야한다는 것입니다.
-
==============================
5.Maven 대신 Gradle을 사용하는 분들은 여기를 참조하십시오 :
Maven 대신 Gradle을 사용하는 분들은 여기를 참조하십시오 :
bootJar { mainClassName = 'com.example.ExampleApplication' }
springBoot { mainClassName = 'com.example.ExampleApplication' }
-
==============================
6.내가 pom.xml에서 다음 코드를 시도하고 그것은 나를 위해 일했다.
내가 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>
-
==============================
7.내 프로젝트의 이름을 변경했고 빌드 경로에서 이전 Application 클래스를 여전히 찾고있었습니다. 내가 '빌드'폴더에서 제거하고 모두 괜찮 았어.
내 프로젝트의 이름을 변경했고 빌드 경로에서 이전 Application 클래스를 여전히 찾고있었습니다. 내가 '빌드'폴더에서 제거하고 모두 괜찮 았어.
-
==============================
8.스프링 부트 1.5 이후에는 pom 또는 build.gradle에서 오류가 발생하기 쉬운 문자열 리터럴을 무시할 수 있습니다. 재 패키징 도구 (maven 또는 gradle plugin을 통해)는 @SpringBootApplication으로 주석이 달린 패키지를 선택합니다. (자세한 내용은이 문제를 참조하십시오 : https://github.com/spring-projects/spring-boot/issues/6496)
스프링 부트 1.5 이후에는 pom 또는 build.gradle에서 오류가 발생하기 쉬운 문자열 리터럴을 무시할 수 있습니다. 재 패키징 도구 (maven 또는 gradle plugin을 통해)는 @SpringBootApplication으로 주석이 달린 패키지를 선택합니다. (자세한 내용은이 문제를 참조하십시오 : https://github.com/spring-projects/spring-boot/issues/6496)
-
==============================
9.main-class가 명시 적으로 지정되지 않은 경우 Java 1.9 및 Spring Boot 1.5.x에서이 문제점을 보았습니다.
main-class가 명시 적으로 지정되지 않은 경우 Java 1.9 및 Spring Boot 1.5.x에서이 문제점을 보았습니다.
Java 1.8에서는 명시 적 속성없이 메인 클래스를 찾을 수 있으며 'mvn package'가 정상적으로 작동합니다.
from https://stackoverflow.com/questions/23217002/how-do-i-tell-spring-boot-which-main-class-to-use-for-the-executable-jar by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 스프링 데이터 JPA에서 FetchMode는 어떻게 작동합니까? (0) | 2018.12.06 |
---|---|
[SPRING] java.lang.ClassNotFoundException : org.springframework.web.servlet.DispatcherServlet (0) | 2018.12.06 |
[SPRING] Spring Java Config : 런타임 인수를 사용하여 프로토 타입 범위의 @Bean을 만드는 방법은 무엇입니까? (0) | 2018.12.06 |
[SPRING] Spring에서 Session 객체를 얻으려면 어떻게해야합니까? (0) | 2018.12.06 |
[SPRING] 봄 XML 파일 구성 계층 도움말 / 설명 (0) | 2018.12.06 |