2017-02-01 18 views
0

私は古いSpring設定をSpring起動1.5.1.RELEASEに移行しています。Spring起動アプリケーションが実行できません

私は実行可能ファイル.jarを取得するのに失敗しました。私は無数の例を続けましたが、私のjarファイルは実行ファイルにはなりません。

、これはmainAppですのポンポンであるので、ここで私の親の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> 

マルチモジュールの設定ですが、それはmainメソッドを保持しているApplication.javaを持っているモジュールです。

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

働くもの:

私はMVNクリーン親のpom.xmlのフォルダにをインストールしてから、MVN 春ブートを実行しないときに、物事は大丈夫作業:中を実行します失敗mainAppですフォルダ

もの:

私は電子XECUTE のjava -jar mainAppです/ターゲット/ xyz.jar私が手にエラーのような:

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

私はよく私ができる、./mainApp/target/xyz.jarようjarファイルを実行しようとすると」ファイルとしてtが実行可能ではない、私のMacOSのシエラ端子は、ファイルのアクセス権のためにこれを示しています

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

私は手動で-rwxrへのアクセス権を変更する場合 - r--のと私は取得ファイルを実行しようとしますこのぎこちない:

以下とのpom.xmlでのビルドブロック
/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?$?' 

答えて

2

問題は、プラグインが設定されているかではなく、プラグインが構成されています。私は、それはすべてが解決された除去され、完全に働いたとき

私は、すべての問題を引き起こしていた<pluginManagement>と私のプラグインを、包まれている

0

更新は、あなたがMavenの3.2(またはそれ以上)を使用して、使用していることを確認してください:メインクラスのエントリーは、JARマニフェストに欠けている

<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

残念ながら、私は例外が発生しました... – zalis

0

ブート達人は、以下のようにプラグインを変更してください:

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

プラグインinfo

+0

物事が少し変化し、効果なし。スレッド "main"の例外java.lang.NoClassDefFoundError:org/springframework/boot/SpringApplication \t at com.xyz.mainApp.Application.main(Application.java:12) 原因:java.lang.ClassNotFoundException:org。 springframework.boot.SpringApplication \t java.net.URLClassLoader.findClass(URLClassLoader。Javaの:381)java.lang.ClassLoader.loadClass(ClassLoader.java:424)sun.misc.Launcher $ AppClassLoader.loadClassで \t(Launcher.java:331)で \t java.lang.ClassLoader.loadClassで \t (ClassLoader.java:357) \t ... 1もっと見る – zalis

関連する問題