有时候maven仓库没有的jar包,我们需要从本地址指定文件路径并且指定scope为system来引入依赖。默认的,assemble插件是不会把本地依赖的jar包打包进去的。
<dependency>
<groupId>com.alibaba.csb.sdk</groupId>
<artifactId>http-client</artifactId>
<version>1.1.5.7</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/resources/lib/http-client-1.1.5.7.jar</systemPath>
</dependency>
assemble插件的配置中,可以指定打包结果输出的根目录和jar包存放目录。
<!-- 根目录 -->
<assembleDirectory>demo</assembleDirectory>
<!-- 打包的jar,以及maven依赖的jar放到这个目录里面 -->
lib
可以通过在pom文件中的build节点中单独指定本地依赖jar包的存放路径作为资源,输出目录targetPath指定到我们打包后存放jar包的地址,这样本地依赖的jar包就可以变相打进去了。这里的地址是相对于本地依赖jar包里面作为目录起点的相对位置。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>target/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
<includeScope>compile</includeScope>
</confi