在macOS系統終端輸入Java指令運作項目:
➜ java -jar target/XXX-1.0-SNAPSHOT.jar
target/XXX-1.0-SNAPSHOT.jar 中沒有主清單屬性
—— 瘋狂百度了一天,找了很多很多方法,最終主要原因是出在 pom.xml檔案中,需要在此檔案中指定下運作的主函數,手動定位到主類。
由于之前運作項目都是在 IDEA直接跑某個具體的java類,是以不需要指定。但在終端使用 java指令跑就不一樣了,需要指定。
是以需要在此pom.xml檔案添加以下内容:(紅色部分為新添加的内容)
<build>
<finalName>XXX-1.0-SNAPSHOT</finalName> <!-- 導出的jar的名字 -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>utf-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.XXX.XXX.Run</mainClass>
<!-- 主類的位置,例如上圖檔案,主類配置應為: -->
<!-- <mainClass> import的包.運作的主函數</mainClass> -->
</transformer>
</transformers>
<encoding>utf-8</encoding>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
添加後儲存pom.xml檔案,然後再次編譯、運作項目,可以跑起來了,不會報 “target/XXX-1.0-SNAPSHOT.jar 中沒有主清單屬性 ”的錯了。