2017-07-18 74 views
0

我創建了一個maven項目。它運行良好。現在我想通過jar運行我的代碼。在maven構建之後,我在.m2文件夾中獲得了一個jar文件。當我嘗試使用運行jar時沒有主清單屬性錯誤

java -jar「jar path」 在「jar路徑」中沒有獲得主清單屬性時。

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

要創建的,而不是用在POM中指定的依賴關係的JAR,使用maven-assembly-pluginjar-with-dependenciesdescriptorRef

<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

謝謝大衛。但它也沒有幫助。 我已經加入下面插件 \t \t \t \t 遮陽 它解決了我的問題,但得到與不同的名字的罐子。 – vijay

相關問題