您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Maven打包沒有指定主類問題怎么解決”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Maven打包沒有指定主類問題怎么解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
在使用IDEA開發項目的時候經常會遇到使用Maven打包項目(打成jar包或者zip包),但是之前不太清楚打包插件的使用,有時候會遇到在啟動jar包的時候沒有指定主類的錯誤(dd-1.0-SNAPSHOT.jar中沒有主清單屬性)。
IDEA:2017.1.5
Maven:3.3.9
Maven可以不添加插件默認打jar包,但是如果想要修改默認的參數需要重新引入插件添加需要修改信息。
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)是否出現BUILD SUCCESS
b. 然后雙擊【package】查看控制臺(Run)是否出現BUILD SUCCESS
c. 在IDEA左邊查看【Project】界面會出現【target】文件夾,打開文件夾會出現xxx.jar包說明已經構建完成。
d. 打開xxx.jar文件,在【META-INF/MANIFEST.MF】文件里面存在Main-Class: demo.LoadDataMR
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)是否出現BUILD SUCCESS
b. 然后雙擊【package】查看控制臺(Run)是否出現BUILD SUCCESS
c. 在IDEA左邊查看【Project】界面會出現【target】文件夾,打開文件夾會出現xxx.jar包說明已經構建完成。
d. 打開xxx-jar-with-dependencies.jar文件,在【META-INF/MANIFEST.MF】文件里面存在Main-Class: demo.LoadDataMR
Maven插件配置的信息只能針對其生成的文件,在maven-jar-plugin插件設置的信息只會出現在xxx.jar包中,在maven-assembly-plugin插件設置的信息只會出現在xxx-jar-with-dependencies.jar包中
第一步:在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
讀到這里,這篇“Maven打包沒有指定主類問題怎么解決”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。