2017-02-01 11 views
0

Ich migriere meine alte Spring-Setup zu Spring Boot 1.5.1.RELEASE.Spring Boot-Anwendung ist nicht ausführbar

Ich bekomme keine ausführbare .jar, ich folgte unzähligen Beispielen, aber meine jar wird nicht zu einer ausführbaren Datei.

Es ist ein Multi-Modul-Setup so hier ist meine Mutter pom.xml

<?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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.xyz</groupId> 
    <artifactId>xyz</artifactId> 
    <name>xyz</name> 
    <version>1.0.0</version> 
    <packaging>pom</packaging> 

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

    <properties> 
    <java.version>1.8</java.version> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <commons.version>3.5</commons.version> 
    <guava.version>21.0</guava.version> 
    </properties> 

    <modules> 
    <module>mainApp</module> 
    <module>module1</module> 
    <module>module2</module> 
    .......... 
    </modules> 

    <dependencyManagement> 
    <dependencies> 

    <!-- Spring boot --> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter</artifactId> 
    </dependency> 

    <!-- commons --> 
    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-lang3</artifactId> 
     <version>3.5</version> 
    </dependency> 

    <!-- google guava --> 
    <dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> 
     <version>${guava.version}</version> 
    </dependency> 

    <!-- Test --> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <scope>test</scope> 
    </dependency> 
    </dependencies> 
    </dependencyManagement> 

</project> 

Dies ist der pom der MainApp, ist es das Modul, das Application.java hat, die Hauptmethode hält.

<?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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <parent> 
    <artifactId>xyz</artifactId> 
    <groupId>com.xyz</groupId> 
    <version>1.0.0</version> 
    </parent> 
    <artifactId>mainApp</artifactId> 
    <groupId>com.xyz.mainApp</groupId> 
    <packaging>jar</packaging> 
    <name>mainApp</name> 

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

<!-- Spring Security OAuth2--> 
    <dependency> 
     <groupId>org.springframework.security.oauth</groupId> 
     <artifactId>spring-security-oauth2</artifactId> 
    </dependency> 


<!-- xyz dependencies -->  
    <dependency> 
     <groupId>com.xyz.module3</groupId> 
     <artifactId>module3</artifactId> 
     <version>${project.version}</version> 
    </dependency>  
    <dependency> 
     <groupId>com.xyz.module2</groupId> 
     <artifactId>module2</artifactId> 
     <version>${project.version}</version> 
    </dependency> 
    </dependencies> 

    <build> 
    <pluginManagement> 
     <plugins> 
      <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
      <configuration> 
       <executable>true</executable> 
      </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
    <finalName>xyz</finalName> 
    </build> 

</project> 

Dinge, die funktionieren:

Also die Dinge in Ordnung arbeiten, wenn ich mvn sauber installieren im Ordner von pom.xml Eltern und dann mvn Feder-boot laufen: run in der MainApp Ordner

Dinge, die fehlschlagen:

wenn ich e Xecute java -jar MainApp/target/xyz.jar Ich erhalte eine Fehlermeldung wie:

no main manifest attribute, in mainApp/target/xyz.jar 

wenn ich die jar wie ./mainApp/target/xyz.jar laufen versuchen, gut ich kann‘ t als die Datei ist keine ausführbare Datei, meine macOS Sierra Terminal zeigt dies für Dateiberechtigungen:

-rw-r--r-- 1 userXYZ staff 37641156 Feb 1 13:14 xyz.jar 

Wenn ich manuell die Berechtigungen ändern zu -rwxr - r-- und versuche, die Datei ich laufe dieses Kauderwelsch:

/xyz.jar: line 1: PK: command not found 
./xyz.jar: line 2: syntax error near unexpected token `)' 
./xyz.jar: line 2: ?iAJ META-INF?iAJMETA-INF/MANIFEST.MFu??J?0??y?y??,??nW*???Jb3?F?LI?????qa?n?3???)Mp5&V????ñ^IQ?????ޱ?.#??`?$?{<??7?m6?j܀?W????'????γڎ9?>????RT?͡?V?? 

G?? 

3iR?G4???dә?A(̀?z?ϖV]ٷ??T??O>?^??0wy?u?^??S]?iG?2?"???i?$?' 

Antwort

2

Das Problem ist nicht, wie das Plugin konfiguriert ist, aber wo das Plugin konfiguriert ist.

Ich habe meine Plugins mit <pluginManagement>, gewickelt, die alle Probleme verursacht wurde, wenn ich das alles gelöst wurde entfernt und funktionierte perfekt

0

Update Buildblock in pom.xml mit folgenden, stellen Sie sicher, dass Sie verwenden, mit Maven 3.2 (oder besser):

<build> 
     <plugins> 
      <plugin> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-maven-plugin</artifactId> 
       <version>1.5.1.RELEASE</version> 
       <executions> 
        <execution> 
         <goals> 
          <goal>repackage</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
+0

leider kein Effekt ... geändert – zalis

0

die Hauptklasse Eintrag im Glas Manifest fehlt.

Bitte ändern Sie die Boot-Maven wie unten Plugin:

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

     <configuration> 
     <mainClass>${start-class}</mainClass> 
     <layout>ZIP</layout> 
     </configuration> 
     <executions> 
     <execution> 
      <goals> 
      <goal>repackage</goal> 
      </goals> 
     </execution> 
     </executions> 
    </plugin> 

Plugin info

+0

die Dinge ein wenig, ich bekam eine Ausnahme: Ausnahme im Thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication \t bei com.xyz.mainApp.Application.main (Application.java:12) verursacht durch: java.lang.ClassNotFoundException: org. springframework.boot.SpringApplication \t bei java.net.URLClassLoader.findClass (URLClassLoader.java: 381) \t bei java.lang.ClassLoader.loadClass (ClassLoader.java:424) \t bei sun.misc.Launcher $ AppClassLoader.loadClass (Launcher.java:331) \t bei java.lang.ClassLoader.loadClass (ClassLoader.java:357) \t ... 1 mehr – zalis

Verwandte Themen