2016-04-24 69 views
-2

我正在使用Eclipse/Maven構建Java應用程序,但在嘗試運行編譯時不斷收到「沒有主要清單屬性,在xxx.jar」錯誤消息罐。我已經通過了(或者至少以爲我已經這麼做了,如果被要求再次嘗試一些東西的話,我不會冒犯),這個Can't execute jar- file: "no main manifest attribute"線程中的所有內容。匹配的主要原因是我的MANIFEST.MF沒有包含任何類信息,導致我認爲我的pom.xml或Eclipse中的一些設置(Mars2)存在問題。我的pom.xml低於未包含在Manifest.MF中的主類,Eclipse

<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/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>io.github.EmbeddedPi</groupId> 
<artifactId>udpServerLED</artifactId> 
<version>0.0.1</version> 
<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
</properties> 
<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> 
       <archive> 
        <manifest> 
         <addClasspath>true</addClasspath> 
         <mainClass>udpServerLED.Main</mainClass> 
        </manifest> 
       </archive> 
      </configuration> 
     </plugin> 
    </plugins> 
</build> 

和主源文件的主要依據是

package udpServerLED; 
    public class Main { 
     public Main() {} 
    } 

的完整代碼可以在https://github.com/EmbeddedPi/udpServerLED

我的直覺可以看到的是,我已經承諾一些新手語法在設置項目框架時會失敗,但我無法看到它。迄今爲止,我的業餘軟件寫作試圖得到這裏的帖子的幫助,所以我認爲我實際上註冊了直接問這個問題。

+0

您是否像配置的問題中指定的那樣配置了maven-jar-plugin? –

+0

是和不是。我包含了jar插件的參數,儘管在現有的編譯器插件中(這個代碼是Bukkit插件的改編版本,以前不需要獨立執行)。解決這個問題讓我更進一步,因爲我現在在清單中有一個類,儘管它還沒有執行。我要閱讀並播放更多內容,並會報告回來。 – DaveW

+0

您需要爲打包jar的清單配置配置maven-jar-plugin,但是運行它可能最需要依賴關係,因此您需要一個fat-jar(或者具有依賴關係的jar),那麼您應該使用maven-shade-plugin並配置其中的清單條目 –

回答

1

pom.xml需要單獨的編譯器和jar插件部分如下。

<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.apache.maven.plugins</groupId> 
     <artifactId>maven-jar-plugin</artifactId> 
     <version>2.4</version> 
     <configuration> 
      <archive> 
       <manifest> 
        <addClasspath>true</addClasspath> 
        <mainClass>udpServerLED.Main</mainClass> 
       </manifest> 
      </archive> 
     </configuration> 
    </plugin> 
</plugins> 

感謝上面的A. Di Matteo的評論,指出我正確的方向來解決這個問題。

相關問題