2017-06-14 27 views
0

私は2つのJavaプロジェクト、動物プロジェクトと動物テストプロジェクトを持っています。私が持っているインタフェースMakeSound.javaを持っていますこれに伴い依存関係メイン関数

package com.animal; 

import java.lang.annotation.ElementType; 
import java.lang.annotation.Retention; 
import java.lang.annotation.RetentionPolicy; 
import java.lang.annotation.Target; 

@Retention(RetentionPolicy.RUNTIME) 
@Target(ElementType.TYPE) 
public @interface Animal{ 
    String name(); 
} 

Animal.java

以下のように動物プロジェクトで、私は動物などと呼ば注釈インターフェイスを過ごしていますと呼ばれるメソッドmakesSound()

今、私が構築し、依存関係を含め動物 jarファイルを作成して、その後、私は私の第二のプロジェクト動物試験animal.jarを輸入しています。私は今構築し、jarファイルを作成動物test.jarをし、私は次の例外を得た-jar動物test.jarJavaのようなjarファイルを実行すると AnimalTest.javaというクラスを作成します

no main manifest attribute, in animal-test.jar 

誰でもこれを手伝ってください。

+0

メインクラス属性は 'META-INF/MANIFEST.MF'に存在しないようにエントリ'メインクラスかどうかをチェックすることができルックス:com.animal.AnimalFinder'は、MANIFEST.MFに存在しています瓶のファイル? –

+0

どのように瓶を作りますか? –

+0

@JerinJoseph私は 'mvn clean install 'を使用しています –

答えて

2

動物試験用のpom.xmlにMANIFESTファイルを作成するには、プラグインを追加する必要があります。

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>2.4.1</version> 
      <configuration> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
       <archive> 
        <manifest> 
         <mainClass>com.animal.AnimalFinder</mainClass> 
        </manifest> 
       </archive> 
      </configuration> 
      <executions> 
       <execution> 
        <id>make-assembly</id> 
        <phase>package</phase> 
        <goals> 
         <goal>single</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 
+0

これで試してみましょう –

+0

私は 'animal-1.0.jar'と' animal-1.0-jar-dependencies.jar'という2つのjarファイルを持っています。私が 'java -jar animal-1.0-jar-with-dependencies 'を実行すると、jar'私は 'エラー:メインクラスcom.animal.AnimalFinder'を見つけられないかロードできませんでした –

+0

このhttps://stackoverflow.com/questions/44582091/one-jar-with-one-class-主なクラスから依存する瓶 –