SpringBoot 주 매니페스트 특성 없음(매븐)
jar 파일을 실행할 때:java -jar target/places-1.0-SNAPSHOT.jar
다음 에러가 표시됩니다.
target/places-1.0-SNAPSHOT.jar에 메인 매니페스트 속성이 없습니다.
그pom.xml를 포함합니다.spring-boot-maven-plugin:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.places.Main</mainClass>
</configuration>
</plugin>
또, 그 유저에 대해서MANIFEST.MF파일을 작성하고 클래스를 지정했지만 도움이 되지 않았습니다.
또, 다음과 같이 시도했습니다.
<properties>
<!-- The main class to start by executing "java -jar" -->
<start-class>com.places.Main</start-class>
</properties>
메인 클래스:
@SpringBootApplication
public class Main {
public static void main(String[] args) throws InterruptedException {
SpringApplication.run(Main.class,args);
}
}
내가 또 뭘 해볼 수 있을까?
추가해 보다repackage목표에서 실행 목표.
그렇지 않으면 플러그인을 명시적으로 호출해야 합니다.mvn package spring-boot:repackage.
목표가 추가되면 전화만 하면 됩니다.mvn package.
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.places.Main</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
메이븐 동안 package 라이프 사이클 국면에서 jar 아카이브는 Spring Boot Maven Plugin에 의해 강화되고 원래 jar 파일(표준 maven-jar-plugin을 사용하여 구축되어야 함)은 확장 실행 가능한 jar로 대체됩니다.
따라서 다음 중 하나를 발행해야 합니다.spring-boot:repackage모듈을 구축할 때 목표를 설정합니다.
mvn package spring-boot:repackage
또는 를 추가합니다.goal플러그인 구성 내에서 명시적으로 다음을 수행합니다.
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.places.Main</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
Spring Boot Maven 플러그인 목표에 대한 자세한 내용은 공식 문서를 참조하십시오.
3가지:
- 폼에 부모 엔트리가 있어요.
- 플러그인이 POM의 빌드 부분에 있는지 확인합니다.
- @SpringBootApplication 주석 클래스가 있습니다.
pom.xml:
...
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
</parent>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
...
그리고 다음과 같은 수업입니다.
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
다음 명령을 사용하여 항아리 또는 전쟁을 다시 백업합니다.
mvn package spring-boot:repackage
플러그인 추가 위치pluginspom.xml과 같은 부모 노드:
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<mainClass>com.sify.scdm.solutionconfigurator.ScdmApplication</mainClass>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
부모 POM 을 지정할 수 있습니다.다음은 예를 제시하겠습니다.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.4.RELEASE</version>
</parent>
패키지 목표 중에는 패키지 재패키지 목표가 실행되며 실행 가능한 jar가 제공됩니다.
아래와 같이 pom.xml에 빌드 태그를 추가하였습니다.
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
아래에 플러그인을 추가합니다.이건 내게 효과가 있었다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.6</version>
<executions>
<!-- Run shade goal on package phase -->
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<!-- add Main-Class to manifest file -->
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>MainClass</mainClass>
<manifestEntries>
<Class-Path>.</Class-Path>
</manifestEntries>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer
implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
언급URL : https://stackoverflow.com/questions/54867295/springboot-no-main-manifest-attribute-maven
'programing' 카테고리의 다른 글
| JSON 결과에서 함수를 정의하는 것이 유효한가? (0) | 2023.03.06 |
|---|---|
| web.config에서 maxJsonLength의 길이를 무제한으로 설정할 수 있습니까? (0) | 2023.03.06 |
| javax.servlet.spring 웹 앱의 형식으로 ServletException을 확인할 수 없습니다. (0) | 2023.03.06 |
| reactJ의 파일 명명 규칙? (0) | 2023.03.06 |
| TypeError: 미들웨어가 함수가 아닙니다. (0) | 2023.03.06 |