场景:
需要往Server上上传Jar,由于包含依赖的Jar比较大,每次修改一点代码重新生成,再上传很费时间。
所以希望打包时将依赖文件和本身的代码分开打包。这样依赖的Jar只要上传一次(因为很少变动)。
然后打包自己的代码生成的Jar就很小了,可以快速地上传。
现在的pom.xml文件:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${java-version}</source>
<target>${java-version}</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
如何修改来满足我的需求?
assembly是把所有jar包都打在一个包内。除非是
<packaging>war</packaging>
模式,不然我还没找到好的做法把这些依赖归到一个目录下。不过,可以试试pack200这个工具(JDK自带的),它可以大幅压缩你打出来的jar包的大小。