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>
それは上でなければなりません
dockerfile-maven-pluginまたは再パッケージ化が行われます
これにより、マニフェストに主要な属性がないという私の問題が解決しました。
manifest
タグを追加する必要があるmaven-jar-plugin
がありません。
スプリングブートでは、META-INFフォルダー内にMANIFEST.MFファイルを作成しました。
sTS IDEで、META-INFOフォルダーをsrc/main/resourcesフォルダー内に次のように配置しました。
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/
****上記の「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>
そして、pom.xmlでproperty start-class
を必ず設定してください
<properties>
<!-- The main class to start by executing "Java -jar" -->
<start-class>org.example.DemoApplication</start-class>
</properties>
または、メインクラスは、pom.xmlのpluginセクションで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>