java -jar를 실행하는 동안 Main-Class 매니페스트 특성을 로드하지 못했습니다.
Spring MVC 프로젝트를 성공적으로 구축했습니다.mvn clean package
이 튜토리얼을 따름.
이제 다음을 사용하여 서비스를 실행하려고 합니다.
mvn clean package && java -jar target/gs-serving-web-content-0.1.0.jar
하지만 다음과 같은 오류가 발생합니다.
target/gs-serving-web-content-0.1.0.jar에서 Main-Class 매니페스트 특성을 로드하지 못했습니다.
내가 뭘 빼놓았나요?
Spring Boot로 작업하는 경우 문제가 해결됩니다.
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>1.2.5.RELEASE</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
Spring Boot Maven 플러그인이 없을 수 있습니다.
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
pom.xml에 지정해야 합니다. 이렇게 하면 모든 종속성으로 jar를 실행할 수 있습니다(교체).your.main.class
):
<!-- setup jar manifest to executable with dependencies -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>your.main.class</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
순서를 보다
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
위에 있어야 합니다.
도커 파일-매븐-재패키지가 발생하지 않을 경우 재패키지가 발생합니다.
이것은 매니페스트에 주요 속성이 없다는 나의 문제를 해결했습니다.
누락되었습니다.maven-jar-plugin
추가해야 하는 항목manifest
꼬리표를 달다
봄 부츠를 위해 매니페스트를 만들었습니다.META-INF 폴더 내부의 MF 파일입니다.
STSIDE에서 다음과 같이 src/main/resources 폴더 안에 META-INFO 폴더를 배치했습니다.
매니페스트의 내용.MF 파일:
Manifest-Version: 1.0
Implementation-Title: bankim
Implementation-Version: 1.5.6.RELEASE
Archiver-Version: Plexus Archiver
Built-By: Yourname
Implementation-Vendor-Id: com.bankim
Spring-Boot-Version: 1.5.6.RELEASE
Implementation-Vendor: Pivotal Software, Inc.
Main-Class: org.springframework.boot.loader.JarLauncher
Start-Class: com.bankim.BankimApplication
Spring-Boot-Classes: BOOT-INF/classes/
Spring-Boot-Lib: BOOT-INF/lib/
Created-By: Apache Maven 3.3.9
Build-Jdk: 1.8.0_131
Implementation-URL: http://projects.spring.io/spring-boot/bankim/
- "Bankim"/"Bankim"에 대한 모든 언급은 내 프로젝트 이름을 참조하므로, 다음과 같이 당신의 프로젝트 이름으로 대체하십시오.
- "Start-Class" 값을 특별히 기록합니다.기본 메서드가 있는 클래스에 대한 "경로"를 포함해야 합니다.
- 행: Main-Class: org.springframework.boot.loader.Jar Launcher는 그대로 두어야 합니다.
****위 매니페스트는 "Mradul Pandey"(15년 9월 2일 4시 50분에 답변)가 위에서 언급한 "스프링 부츠 메이븐 플러그인"을 사용하여 저를 위해 만들어졌습니다.
이것이 도움이 되길 바랍니다.
java -jar target/gs-serving-web-content-0.1.0.jar
명령은 제공된 jar가 실행 가능하다고 가정합니다.실행 가능한 병에서,main
방법이 정의되어 있습니다.MANIFEST.MF
파일. 당신이 가지고 있지 않은 것을 고려할 때.MANIFEST.MF
파일, 추가 명령줄 인수를 전달하여 다음을 포함하는 클래스를 지정할 수 있습니다.main
방법.
다음과 같은 명령.java -cp target/gs-serving-web-content-0.1.0.jar com.pkg.subpkg.MainClass
목적에 부합할 것입니다.
나는.spring-boot-maven-plugin
하지만 여전히 메인 클래스에 대한 오류를 받고 있었습니다.
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
마침내 나는 그것을 사용해야 했습니다.maven-jar-plugin
추가합니다.mainClass
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>com.org.proj.App</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
그리고 갈 수 있어서 좋았어요!
사용하다spring-boot-maven-plugin
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
그리고 꼭 준비하세요.property start-class
pom.xml에
<properties>
<!-- The main class to start by executing "java -jar" -->
<start-class>org.example.DemoApplication</start-class>
</properties>
또는 메인 클래스를 pom.xml의 플러그인 섹션에 있는 spring-boot-maven-plugin의 mainClass 요소로 정의할 수 있습니다.
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
<configuration>
<classifier>spring-boot</classifier>
<mainClass>${start-class}</mainClass>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
플러그인 구성이 내 구성과 같은 경우(below
그 사용), 다음, 사용mvn package spring-boot:repackage
.
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
</build>
행복한 배움.
메인 클래스를 매니페스트에 설정해야 합니다.MF 파일:
Main-Class: com.example.MainClassApplication
사용할 수 있습니다.
mvn 패키지 spring-boot:재패키지
target dir 앞에 이 명령을 누른 다음 jar 파일을 사용합니다.
.
언급URL : https://stackoverflow.com/questions/19620342/failed-to-load-main-class-manifest-attribute-while-running-java-jar
'programing' 카테고리의 다른 글
플렉스 베이스와 폭의 차이점은 무엇입니까? (0) | 2023.08.01 |
---|---|
MySQL max()가 있는 그룹 함수를 잘못 사용함 (0) | 2023.08.01 |
Ruby on Rails 활성 레코드를 사용하여 여러 레코드를 삽입합니다. (0) | 2023.08.01 |
3D 산점도를 만드는 방법 (0) | 2023.08.01 |
배열을 오라클 프로시저로 전달 (0) | 2023.08.01 |