Nice programing

java -jar를 실행하는 동안 Main-Class 매니페스트 속성을로드하지 못했습니다.

nicepro 2020. 12. 26. 16:37
반응형

java -jar를 실행하는 동안 Main-Class 매니페스트 속성을로드하지 못했습니다.


이 튜토리얼mvn clean package 에 따라 Spring MVC 프로젝트를 성공적으로 구축했습니다 .

이제 다음과 같이 서비스를 실행하려고합니다.

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 플러그인


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>

태그 maven-jar-plugin를 추가해야하는 부분 이 없습니다 manifest.


순서를 확인하다

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

위에 있어야합니다

dockerfile-maven-plugin 그렇지 않으면 리 패키징이 발생합니다.

이것은 매니페스트에 주요 속성이 없다는 내 문제를 해결했습니다.


봄 부팅을 위해 META-INF 폴더 안에 MANIFEST.MF 파일을 만들었습니다 .

내 STS IDE에서 다음과 같이 src / main / resources 폴더 안에 META-INFO 폴더를 배치했습니다 .

STS IDE의 스크린 샷 (eclipse 프로젝트)

MANIFEST.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/
  1. "bankim"/ "Bankim"에 대한 모든 언급은 내 프로젝트 이름을 나타내므로 프로젝트 이름으로 바꾸십시오.
  2. "Start-Class"값에 특히주의하십시오. 기본 메소드 가있는 클래스에 대한 "경로"를 포함해야합니다 .
  3. 행 : Main-Class : org.springframework.boot.loader.JarLaunchers는 그대로 두어야합니다.

**** 위 매니페스트는 "Mradul Pandey"가 위에서 언급 한 "spring-boot-maven-plugin"을 사용하여 생성되었습니다 (답변 : '15 년 9 월 2 일 4:50).

도움이 되었기를 바랍니다


나는 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-classpom.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> 

참조 URL : https://stackoverflow.com/questions/19620342/failed-to-load-main-class-manifest-attribute-while-running-java-jar

반응형