引入本地依赖
假设本地依赖包放在项目的lib文件夹中,pom.xml应该如下。
<dependency>
<groupId>随便填</groupId>
<artifactId>aaa</artifactId>
<version>bbb</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/aaa-bbb.jar</systemPath>
</dependency>
其中的aaa-bbb.jar为artifactId-version.jar
形式,这么些是因为使用maven-jar-plugin
打包时写入依赖就是这种形式,例如你应用本地一个commons-io-2.6.jar
包,那就得写成
<dependency>
<groupId>随便填</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/commons-io-2.6.jar</systemPath>
</dependency>
如果jar包没有版本号,只有aaa.jar
这种形式,那么建议随便加多一个版本号例如aaa-1.0.jar
。
另外这种方式引入jar包不会引入这个jar包所需的依赖,所以这个本地jar包所需依赖需要另外添加。
打包
假设打包的效果是打包成一个jar,把所有依赖都放到一个lib文件夹,配置如下。
<build>
<plugins>
<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>
<!-- 把依赖包复制到lib文件夹 -->
${project.build.directory}/lib
</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>xxx.xxx.Start</mainClass>
<addClasspath>true</addClasspath>
<!-- 依赖包的前缀就是jar包所在的文件夹 -->
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<manifestEntries>
<!-- 这个插件并不会把scope为system的依赖添加到Class-Path,所以须要手动指定,必须一个一个写,多个时用空格隔开 -->
<Class-Path>lib/aaa-bbb.jar lib/ccc-ddd.jar</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
来源:oschina
链接:https://my.oschina.net/js99st/blog/3176228