SpringBoot kein Hauptmanifestattribut (maven)

Lesezeit: 6 Minuten

Benutzer-Avatar
JeyJ

Beim Ausführen meiner JAR-Datei: java -jar target/places-1.0-SNAPSHOT.jar

Ich bekomme den nächsten Fehler:

kein Hauptmanifestattribut, in target/places-1.0-SNAPSHOT.jar

Das pom.xml enthält die spring-boot-maven-plugin:

<plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
    <configuration>
        <mainClass>com.places.Main</mainClass>
    </configuration>
</plugin>

Ich habe auch versucht, eine zu erstellen MANIFEST.MF Datei und Angabe der Klasse, aber es hat nicht geholfen.

Außerdem habe ich auch versucht:

<properties>
      <!-- The main class to start by executing "java -jar" -->
      <start-class>com.places.Main</start-class>
</properties>

Hauptklasse:

@SpringBootApplication
public class Main {
    public static void main(String[] args) throws InterruptedException {
        SpringApplication.run(Main.class,args);
    }
}

Irgendeine Idee, was ich noch versuchen kann?

  • Haben Sie eine @SpringBootApplication-Hauptklasse?

    – Laksitha Ranasingha

    25. Februar 2019 um 13:42 Uhr

  • Natürlich innerhalb der Hauptklasse. Habe ich im Originalpost eingefügt

    – JeyJ

    25. Februar 2019 um 13:42 Uhr


  • können Sie weitere Informationen, die Spring-Boot-Version und die Maven-Version angeben.

    – Laksitha Ranasingha

    25. Februar 2019 um 13:43 Uhr

  • maven3 und Springboot 2.1.1

    – JeyJ

    25. Februar 2019 um 13:57 Uhr

  • Mögliches Duplikat von Failed to load Main-Class manifest attribute while running java -jar

    – tmarwen

    25. Februar 2019 um 14:20 Uhr

Benutzer-Avatar
Matej

Versuchen Sie, hinzuzufügen repackage Ziel zu Ausführungszielen.

Andernfalls müssten Sie das Plugin explizit als aufrufen mvn package spring-boot:repackage.

Wenn das Ziel hinzugefügt ist, müssen Sie nur noch anrufen 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>

  • Es half ! Können Sie erklären, warum ich es verpacken muss?

    – JeyJ

    25. Februar 2019 um 14:02 Uhr

  • Wenn Sie haben spring-boot-starter-parent in dir pom brauchst du nichts zu definieren repackage Ziel im Plugin. Offizielles Dokument: docs.spring.io/spring-boot/docs/2.3.0.RELEASE/maven-plugin/…

    – Bandham-Manikanta

    17. Juni 2020 um 17:42 Uhr

  • Der Grund dafür ist, dass Sie Spring nicht als übergeordnetes Element verwenden. Ich nehme an, Sie haben es auf DependencyManagement eingestellt. Dann müssen Sie explizit definieren, welches Ziel für spring-boot-maven-plugin verwendet werden soll, um eine ausführbare JAR-Datei zu erhalten. In diesem Fall neu verpacken.

    – Kevin Valdez

    2. Juli 2020 um 4:11 Uhr

  • ähnliches Problem mit Multimodul: stackoverflow.com/questions/70833195/…

    – Emoleumassi

    24. Januar um 13:37 Uhr

Benutzer-Avatar
tmarwen

Während der Maven package Lebenszyklusphase, die Krug Archiv wird erweitert um Spring Boot Maven-Plugin und das Original Krug Datei (die mit dem Standard hätte erstellt werden sollen maven-jar-plugin) wird durch ein ersetzt erweitert ausführbar Krug.

Daher müssen Sie entweder die ausstellen spring-boot:repackage Ziel beim Bau Ihres Moduls:

mvn package spring-boot:repackage

Oder fügen Sie die hinzu goal explizit in der Plugin-Konfiguration:

<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>

Weitere Details finden Sie unter Spring Boot Maven-Plugin repackage Tor innerhalb der offiziellen Dokumentation.

  • github.com/ajeetkumarv/healthlog Ich habe sowohl Repackage als auch Plugin ausprobiert, aber es hat nicht funktioniert. Die Hauptmethode befindet sich im Anwendungsmodul

    – Ajeetkumar

    23. September 2020 um 11:19 Uhr

  • Hallo @Ajeetkumar, könnten Sie eine neue Frage mit Ihrer Build-Konfiguration melden und darauf hinweisen. Ich helfe Ihnen gerne weiter.

    – tmarwen

    24. September 2020 um 13:49 Uhr

3 Dinge:
– Sie haben den übergeordneten Eintrag in Ihrem Pom.
– Stellen Sie sicher, dass sich Ihr Plugin im Build-Teil des Pom befindet.
– Sie haben eine Klasse mit der Annotation @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>
...

Und eine Klasse, die etwa so aussieht:

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

}

Benutzer-Avatar
LaurentJ

Sie können ein übergeordnetes Element angeben POM z.B :

<parent>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-parent</artifactId>
   <version>2.1.4.RELEASE</version>
</parent>

Während des Paketziels wird das Neupaketziel ausgeführt und Sie erhalten dann ein ausführbares JAR.

Benutzer-Avatar
Jo

Erwidern Sie Ihre Krug oder Krieg mit dem folgenden Befehl:

mvn package spring-boot:repackage

Fügen Sie das Plugin hinzu plugins übergeordneter Knoten wie unten in pom.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>
   



        

Benutzer-Avatar
Vinod Varanasi

Build-Tag in pom.xml hinzugefügt, wie unten gelöstes Problem für mich.

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

Benutzer-Avatar
CasualBen

Fügen Sie das Plugin unten hinzu. Das hat bei mir funktioniert

 <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>

1130720cookie-checkSpringBoot kein Hauptmanifestattribut (maven)

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy