maven-build-Fehler beim generieren von Krieg-Paket für spring-boot-Anwendung?

Dies ist eine Erweiterung meiner vorherigen Frage hier an SO. Laut diesem post, main-Methode ist NICHT erforderlich, um eine deployable war

Ich versuche zu generieren, die eine deployable war für diese einfache Anwendung von hochladen von Dateien. Der Quellcode für dieses Beispiel finden Sie hier.

Gemäß den Anweisungen von spring boot für jar-Krieg-Konvertierung, änderte ich meine pom.xml zu reflektieren, den folgenden. (Nur Hinzugefügt tomcat Abhängigkeit mit dem Umfang provided).

Referenz: http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#build-tool-plugins-maven-packaging

      <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.springframework</groupId>
    <artifactId>gs-uploading-files</artifactId>
    <version>0.1.0</version>
    <packaging>war</packaging>

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


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

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

    </dependencies>

    <properties>
        <java.version>1.7</java.version>
    </properties>

    <repositories>
        <repository>
            <id>spring-releases</id>
            <name>Spring Releases</name>
            <url>https://repo.spring.io/libs-release</url>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-releases</id>
            <name>Spring Releases</name>
            <url>https://repo.spring.io/libs-release</url>
        </pluginRepository>
    </pluginRepositories>
</project>

Dann änderte ich Application.java wie folgt

Referenz: http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-create-a-deployable-war-file

@SpringBootApplication
public class Application extends SpringBootServletInitializer{

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }

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

Ich habe versucht, zwei Szenarien. sowohl mit dem folgenden Fehler fehl (Unable to find main class).

  1. Keine main-Methode (HINWEIS: ich habe auskommentiert main-Methode oben)
  2. Keine application.Java Datei (auskommentiert alles aus dieser Datei - hier nicht gezeigt)

Fehler:

[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.218s
[INFO] Finished at: Thu Apr 23 11:46:24 PDT 2015
[INFO] Final Memory: 22M/222M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:1.2.3.RELEASE:repackage (default) on project gs-uploading-files: Execution default of goal org.springframework.boot:spring-boot-maven-plugin:1.2.3.RELEASE:repackage failed: Unable to find main class -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException

PS: wenn ich die main-Methode intakt, der build ist erfolgreich

  • Eine chance haben Sie immer noch einen Verweis zu deiner main-Klasse in der pom.xml?
  • Ich bin mir nicht sicher, was Sie genau meinen. Ich habe aktualisiert mit meinem ganzen pom.xml
  • Andere als die Antworten auf deine verlinkte Frage, die ich nicht finden konnte keine Beweise dafür, dass Sie weglassen können, die main-Klasse, d.h. eine Klasse mit main-Methode. Die spring-boot-maven-plugin zu sein scheint, um ihn zu suchen. Vielleicht, wenn Sie nicht das plugin nutzen, aber nicht sicher, ob der sich lohnt.
  • Wenn Sie nur wollen, um die Anwendung auszuführen als ein standard-war-Datei, können Sie entweder entfernen Sie die Boot-plugin vollständig oder es so konfigurieren, dass das Verpacken Ziel ist nicht gebunden an Maven-Lebenszyklus
  • für die Prüfung, lokal, würde ich lieber einen embedded Tomcat. aber für die Bereitstellung, ich muss einen Krieg. Ich bin nicht sicher, wie kann ich sowohl die Vorteile hier
InformationsquelleAutor brain storm | 2015-04-23
Schreibe einen Kommentar