本章背景介绍:把项目写好之后就可以打成jar进行运行。而打包jar的方式有很多,在这里将介绍使用maven进行打包。
IDEA默认打包方式
在介绍Maven打包之前先说明下IDEA默认打包方式:
第一步:打开IDEA->File->Project Structure...。或者使用快捷键:Ctrl+Alt+Shift+S
第二步:选中Artifacts选项卡,然后点击上面的加号(+),选择第一项JAR展开后,选择【From modules with dependencies...】
第三步:配置打包相关
第四步:得到输出路径,然后点击【OK】
第五步:选择【Build】,然后是【Build Artifacts...】
第六步:生成jar包
第七步:查看生成包,到刚才输出路径的位置去查看生成的jar包。
bu
第八步:运行该包,效果图如下。
Maven打包有三种方式
- 使用maven-jar-plugin和maven-dependency-plugin插件打包
- 使用maven-assembly-plugin插件打包
- 使用maven-shade-plugin插件打包
Maven打包方式一
在pom.xml中添加如下代码(需要注意里面的标签是否在你的pom中已经存在。核心是两个<plugin></plugin>标签中的内容):
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<!--用于生成META-INF/MANIFEST.MF文件部分内容-->
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<!--会在MANIFEST.MF加上Class-Path项并配置依赖包-->
<addClasspath>true</addClasspath>
<!--指定依赖包所在的存放目录-->
<classpathPrefix>lib</classpathPrefix>
<!--指定MANIFEST.MF中的Main-Class-->
<!--主类是包路径和主类名,从src/main/java目录下开始-->
<mainClass>com.mycom.myapp.colorpicker.Test</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<!--将依赖包拷贝到下面的outputDirectory标签中的指定位置,即lib目录-->
<artifactId>maven-dependency-plugin</artifactId>
<version>2.8</version>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<!--指定依赖包拷贝位置-->
<outputDirectory>${project.build.directory}/lib</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
代码输了之后,还需要运行maven命令。
首先打开输入maven命令窗口:点击【Edit Configurations...】
然后点击加号(+),选择【Maven】
在Command line中输入如下命令:
clean package
然后点击【OK】
再点击运行
最后会在控制台输出如下内容,就表示打包成功:
在项目的target文件夹下可以找到生成的jar包,点击运行jar包。
Maven打包方式二
在pom.xml中添加如下代码:
<!--Maven打包方式二-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2-beta-5</version>
<configuration>
<archive>
<manifest>
<!--设置主类-->
<mainClass>com.mycom.myapp.colorpicker.Test</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<!--这里的设置是在执行package打包时,执行assembly:single,所以可以直接使用mvn package打包。-->
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
运行clean package命令生成如下结果即打包成功。
这次的打包方式会生成两个jar包。
在target目录下生成一个xxx-jar-with-dependencies.jar文件可以运行,这个文件不但包含了自己项目中的代码和资源,还包含了所有依赖包的内容。
Maven打包方式三
在pom.xml中进行如下配置:
<!--Maven打包方式三-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<!--设置主类-->
<mainClass>com.mycom.myapp.colorpicker.Test</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
运行clean package命令,生成如下日志就打包成功
配置完成后会在target文件夹下生成两个jar包。
生成两个包中original-xxx.jar是源码不可执行,而另外一个xxx.jar包可以执行成。
几种方式就是如上所述,而接下来的最后一节就是将生成的jar文件进一步打包生成exe文件。