寫在前面
在使用IDEA開發項目的時候經常會遇到使用Maven打包項目(打成jar包或者zip包),但是之前不太清楚打包插件的使用,有時候會遇到在啓動jar包的時候沒有指定主類的錯誤(dd-1.0-SNAPSHOT.jar中沒有主清單屬性)。今天學習一下插件使用,寫一個針對該問題的教程。
軟件環境
IDEA:2017.1.5
Maven:3.3.9
打xxx.jar包(不包含依賴的jar包)
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
打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)是否出現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包中