今天,突然一同事问我如何打包maven项目,我也着实有点懵,在查阅了度娘和自己实际操作之后过来总结一下,又什么不妥的地方还望补充“
参考文章:点这里
Maven提供了这么一个plugin,Apache Maven Shade Plugin。他的作用就是用来打包一个超级Jar包(被称作uber-jar),其中包含了他依赖的其他Jar包。
其实使用起来也是非常简单的:只要在pam.xml中配置一下就行了
在 <project>标签中加入一下代码:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>cn.dubby.undertow.demo.HelloWorldServer</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
这一部分表示你的JDK版本:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
关键是这一部分
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>cn.dubby.undertow.demo.HelloWorldServer</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
在<mainClass>中填入你的main方法的包名+类名
然后打开DOS窗口,cd到项目根路径下
举个例子:
然后执行mvn package,mvn编译完成,提示如下信息:
然后cd 到target目录下,就到看到可执行的jar包
然后在target路径下执行 java -jar jsoupDemo-0.0.1-SNAPSHOT.jar执行jar包
运行结果如下:(ps:我执行的是一个导入数据库的程序)