在pom.xml中的<build>标签中的<plugins>标签中添加下面这个插件
<!-- 拷贝项目所有依赖jar文件到构建lib目录下 -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/lib</outputDirectory>
<excludeTransitive>false</excludeTransitive>
<stripVersion>false</stripVersion>
<silent>true</silent>
</configuration>
</execution>
</executions>
</plugin>
正常来说我们的项目都已经有下面这个插件了,
如果没有就添加上,然后在其中的configuration标签中添加下面一段内容
<includes>
<!-- 不存在的include引用,相当于排除所有maven依赖jar,没有任何三方jar文件打入输出jar -->
<include>
<groupId>null</groupId>
<artifactId>null</artifactId>
</include>
</includes>
<layout>ZIP</layout>
刷新一下maven
现在执行maven clean package
可以看到target中有一个lib目录,其中lib里面是项目依赖的第三方包,而我们的jar包,只有几百k大小了
如果没有更改过maven依赖,那么lib里面的东西没有变,后面部署的时候就不用更新lib文件夹,只需要上传我们的jar包就行了,基本上可以做到秒传
如果把lib和jar包放在同一目录,那么启动命令就是
nohup java -jar -Dloader.path=./lib arbitration.jar &
path目录根据你lib的路径定