在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的路径定