我正在使用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
我的直覺可以看到的是,我已經承諾一些新手語法在設置項目框架時會失敗,但我無法看到它。迄今爲止,我的業餘軟件寫作試圖得到這裏的帖子的幫助,所以我認爲我實際上註冊了直接問這個問題。
您是否像配置的問題中指定的那樣配置了maven-jar-plugin? –
是和不是。我包含了jar插件的參數,儘管在現有的編譯器插件中(這個代碼是Bukkit插件的改編版本,以前不需要獨立執行)。解決這個問題讓我更進一步,因爲我現在在清單中有一個類,儘管它還沒有執行。我要閱讀並播放更多內容,並會報告回來。 – DaveW
您需要爲打包jar的清單配置配置maven-jar-plugin,但是運行它可能最需要依賴關係,因此您需要一個fat-jar(或者具有依賴關係的jar),那麼您應該使用maven-shade-plugin並配置其中的清單條目 –