下面使用到了两个插件,maven-shade-plugin和addjars-maven-plugin。凡是讲到打包,前一个插件基本都有说,但是第二个插件很少提到。
后面这个插件解决了这样一个问题:我有一些本地jar包,不是使用maven引入的,我该如何将这些本地jar包打入最终的jar包中呢?
有些人说可以使用system类型的dependency引入本地jar包。
有些人说system类型的dependency绝不该使用。而应该将jar包装到自己本地的仓库中,然后在dependency中按照正常引入方式引用自己本地的jar包。
正确方式是下面的,但是操作起来对新手就很不友好,我不就是想打个包嘛,搞得这么复杂。下面第二个插件addjars-maven-plugin就是将正确做法做成了一个插件,只需要提供jar包的路径就可以成功打包。
<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> <createDependencyReducedPom>false</createDependencyReducedPom> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <mainClass>Main</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> <plugin> <groupId>com.googlecode.addjars-maven-plugin</groupId> <artifactId>addjars-maven-plugin</artifactId> <version>1.0.5</version> <executions> <execution> <goals> <goal>add-jars</goal> </goals> <configuration> <resources> <resource> <directory>${basedir}/lib</directory> </resource> </resources> </configuration> </execution> </executions> </plugin>
原创文章,作者:geekgao,如若转载,请注明出处:https://www.geekgao.cn/archives/114