2017-07-18 23 views
0

私はmavenプロジェクトを作成しました。それは正常に実行されています。今私はjarを使って自分のコードを実行したい。 mavenビルド後、私は.m2フォルダにjarファイルを持っています。このjarを実行しようとすると、 "jar path"にメインマニフェスト属性がなくなります。jar実行時のメインマニフェスト属性エラーがありません

java -jar "jar path"

私のpom.xmlは、問題を取り除くを乗り越える方法を提案してください

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.3</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 

    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>exec-maven-plugin</artifactId> 
     <version>1.2.1</version> 
     <configuration> 
      <mainClass>main.Application</mainClass> 
     </configuration> 
    </plugin> 

     </plugins> 
</build> 

です。

答えて

0

今私は瓶

exec-maven-pluginを通じて私のコードを実行するには、Mavenのビルド時にプログラムを実行するためです。
あなたはそれを望んでいません。
さらに、あなたはそれに対して目標を指定していません。
だから、何もしません。

jarを実行可能な方法でパッケージ化したいとします。
だから、maven-jar-pluginむしろ使用:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <configuration> 
     <archive> 
      <manifest> 
        <mainClass>main.Application</mainClass> 
      </manifest> 
     </archive> 
    </configuration> 
</plugin> 

ポンポンで指定された依存関係を持つJARを作成して、代わりに、jar-with-dependenciesdescriptorRefmaven-assembly-pluginを使用するには:

<build> 
    <plugins> 
    <plugin> 
     <artifactId>maven-assembly-plugin</artifactId> 
     <configuration> 
     <archive> 
      <manifest> 
      <mainClass>main.Application</mainClass> 
      </manifest> 
     </archive> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 
+0

私は提案された変更をしましたが、今私はjava.lang.NoClassDefFoundErrorエラーを取得しています。プロジェクトPOMには依存関係が含まれていますが、私のjarにはこれらの依存関係がないようです。 – vijay

+0

プロジェクトにはいくつかの外部依存関係があるためです。この場合、maven-assembly-pluginを使用することができます。私は説明するために編集しました。 – davidxxx

+0

デビッドありがとうございます。しかしそれはどちらも助けませんでした。 iが \t \t \t \t パッケージ シェードプラグインの下に追加されている 私の問題は解決しましたが、別の名前のjarファイルを取得しました。 – vijay

関連する問題