在上一篇(创建第一个Maven项目)介绍了Maven的编译和测试,
编译和测试通过后就是打包和运行了。
一、打包
命令:mvn clean package
执行命令后输出信息如下:
打包后在target/目录中会生成helloworld-1.0-SNAPSHOT.jar文件。
二、安装运行
命令:mvn clean install
执行命令后输出信息如下:
从输出信息可以看出,jar被安装到了Maven本地仓库中。
到目前为止,从编译到安装都已经执行完了,但是还没有真正运行,因为我们的项目主文件中是有Main方法的。
为了让其能够运行,我们需要让Maven生成可运行的jar文件,这就需要在pom.xml中配置一下maven-shade-plugin插件。
配置插件如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.kafei.mvnproject.helloworld.HelloWorld</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
在pom.xml的project元素中添加。
配置的mainClass为com.kafei.mvnproject.helloworld.HelloWorld,项目在打包时会将该信息放到MANIFEST中。现在执行mvn clean install,待构建完之后打开
target/目录,就可以看到helloworld-1.0-SNAPSHOT.jar和original-helloworld-1.0-SNAPSHOT.jar,前者是可运行的jar,后者是原始的jar。
用记事本打开helloworld-1.0-SNAPSHOT.jar的META-INF/MANIFEST.MF文件,可以看到如下信息:
com.kafei.mvnproject.helloworld.HelloWorld
现在在项目根目录执行该jar文件输出如下:
源码下载:HelloMaven源码
至此Maven项目的打包、测试已经完成。