欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Maven打包沒有指定主類問題(xxx.jar中沒有主清單屬性)

 更新時間:2023年04月11日 08:58:12   作者:啊Abu  
這篇文章主要介紹了Maven打包沒有指定主類問題(xxx.jar中沒有主清單屬性),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Maven打包沒有指定主類

在使用IDEA開發(fā)項目的時候經(jīng)常會遇到使用Maven打包項目(打成jar包或者zip包),但是之前不太清楚打包插件的使用,有時候會遇到在啟動jar包的時候沒有指定主類的錯誤(dd-1.0-SNAPSHOT.jar中沒有主清單屬性)。今天學習一下插件使用,寫一個針對該問題的教程。

軟件環(huán)境

  • IDEA:2017.1.5
  • Maven:3.3.9

打xxx.jar包(不包含依賴的jar包)

Maven可以不添加插件默認打jar包,但是如果想要修改默認的參數(shù)需要重新引入插件添加需要修改信息。

? 1. 修改pom.xml

<plugin>
? ? <groupId>org.apache.maven.plugins</groupId>
? ? <artifactId>maven-jar-plugin</artifactId>
? ? <version>3.1.0</version>
? ? <configuration>
? ? ? ? <archive>
? ? ? ? ? ? <manifest>
? ? ? ? ? ? ? ? <mainClass>demo.LoadDataMR</mainClass>
? ? ? ? ? ? </manifest>
? ? ? ? </archive>
? ? </configuration>
</plugin>

2.使用Maven工具打包

找到IDEA右邊的【Maven Projects】->【項目名稱】->【Lifecycle】

  • a. 先雙擊【clean】查看控制臺(Run)是否出現(xiàn)BUILD SUCCESS
  • b. 然后雙擊【package】查看控制臺(Run)是否出現(xiàn)BUILD SUCCESS
  • c. 在IDEA左邊查看【Project】界面會出現(xiàn)【target】文件夾,打開文件夾會出現(xiàn)xxx.jar包說明已經(jīng)構建完成。
  • ?d. 打開xxx.jar文件,在【META-INF/MANIFEST.MF】文件里面存在Main-Class: demo.LoadDataMR

打xxx-jar-with-dependencies.jar包

1. 修改pom.xml文件

<plugin>
? ? <artifactId>maven-assembly-plugin</artifactId>
? ? <configuration>
? ? ? ? <archive>
? ? ? ? ? ? <manifest>
? ? ? ? ? ? ? ? <mainClass>demo.LoadDataMR</mainClass>
? ? ? ? ? ? </manifest>
? ? ? ? </archive>
? ? ? ? <descriptorRefs>
? ? ? ? ? ? <descriptorRef>jar-with-dependencies</descriptorRef>
? ? ? ? </descriptorRefs>
? ? </configuration>
? ? <!--下面是為了使用 mvn package命令,如果不加則使用mvn assembly-->
? ? <executions>
? ? ? ? <execution>
? ? ? ? ? ? <id>make-assemble</id>
? ? ? ? ? ? <phase>package</phase>
? ? ? ? ? ? <goals>
? ? ? ? ? ? ? ? <goal>single</goal>
? ? ? ? ? ? </goals>
? ? ? ? </execution>
? ? </executions>
</plugin>

2.使用Maven工具打包

找到IDEA右邊的【Maven Projects】->【項目名稱】->【Lifecycle】

  • a. 先雙擊【clean】查看控制臺(Run)是否出現(xiàn)BUILD SUCCESS
  • b. 然后雙擊【package】查看控制臺(Run)是否出現(xiàn)BUILD SUCCESS
  • c. 在IDEA左邊查看【Project】界面會出現(xiàn)【target】文件夾,打開文件夾會出現(xiàn)xxx.jar包說明已經(jīng)構建完成。
  • d. 打開xxx-jar-with-dependencies.jar文件,在【META-INF/MANIFEST.MF】文件里面存在Main-Class: demo.LoadDataMR

寫在后面?

Maven插件配置的信息只能針對其生成的文件,在maven-jar-plugin插件設置的信息只會出現(xiàn)在xxx.jar包中,在maven-assembly-plugin插件設置的信息只會出現(xiàn)在xxx-jar-with-dependencies.jar包中

處理maven打包中沒有主類啟動的情況

第一步:在pom文件中添加

<!--解決maven打包問題-->
?
<plugin>
? ? <groupId>org.apache.maven.plugins</groupId>
? ? <artifactId>maven-shade-plugin</artifactId>
? ? <version>2.3</version>
? ? <executions>
? ? ? ? <execution>
? ? ? ? ? ? <phase>package</phase>
? ? ? ? ? ? <goals>
? ? ? ? ? ? ? ? <goal>shade</goal>
? ? ? ? ? ? </goals>
? ? ? ? ? ? <configuration>
? ? ? ? ? ? ? ? <transformers>
? ? ? ? ? ? ? ? ? ? <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
? ? ? ? ? ? ? ? ? ? ? ? <manifestEntries>
? ? ? ? ? ? ? ? ? ? ? ? ? ? <Main-Class>
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? com.xxx.XXApplication
? ? ? ? ? ? ? ? ? ? ? ? ? ? </Main-Class>
? ? ? ? ? ? ? ? ? ? ? ? </manifestEntries>
? ? ? ? ? ? ? ? ? ? </transformer>
? ? ? ? ? ? ? ? ? ? <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
? ? ? ? ? ? ? ? ? ? ? ? <resource>META-INF/spring.handlers</resource>
? ? ? ? ? ? ? ? ? ? </transformer>
? ? ? ? ? ? ? ? ? ? <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
? ? ? ? ? ? ? ? ? ? ? ? <resource>META-INF/spring.schemas</resource>
? ? ? ? ? ? ? ? ? ? </transformer>
? ? ? ? ? ? ? ? </transformers>
? ? ? ? ? ? </configuration>
? ? ? ? </execution>
? ? </executions>
</plugin>

第二步 mvn:clean

第三步 mvn:package

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論