说明:第三方 jar 包(或自己写的,即在 maven 中央仓库不存在的),在新项目中有引用,由于是在本地,所以 scope 是 system,无法打入
以网上的 beautyeye 为例子
<dependency> | |
<groupId>com.beautyeye</groupId> <!-- 自定义 --> | |
<artifactId>beautyeye</artifactId> <!-- 自定义 --> | |
<version>1.0</version> <!-- 自定义 --> | |
<scope>system</scope><!--system,类似 provided,需要显式提供依赖的 jar 以后,Maven 就不会在 Repository 中查找它 --> | |
<systemPath>${basedir}/src/main/webapp/lib/beautyeye_lnf.jar</systemPath> <!-- 项目根目录下的 lib 文件夹下 --> | |
</dependency> |
该依赖现在执行 mvn package 是没有办法打入的
此时可以参考:https://devcenter.heroku.com/articles/local-maven-dependencies
基本操作:
在 pom.xml 同级目录创建一个仓库 repo
执行命令
mvn deploy:deploy-file -Durl=file:///path/to/yourproject/repo/ -Dfile=mylib-1.0.jar -DgroupId=com.example -DartifactId=mylib -Dpackaging=jar -Dversion=1.0 |
执行完后,在 pom.xml 引入该仓库
<repositories> | |
<!--other repositories if any--> | |
<repository> | |
<id>project.local</id> | |
<name>project</name> | |
<url>file:${project.basedir}/repo</url> | |
</repository> | |
</repositories> |
此时依赖修改为
<dependency> | |
<groupId>com.beautyeye</groupId> <!-- 自定义 --> | |
<artifactId>beautyeye</artifactId> <!-- 自定义 --> | |
<version>1.0</version> <!-- 自定义 --> | |
<!--<scope>system</scope>--><!--system,类似 provided,需要显式提供依赖的 jar 以后,Maven 就不会在 Repository 中查找它 --> | |
<!--<systemPath>${basedir}/src/main/webapp/lib/beautyeye_lnf.jar</systemPath>--> <!-- 项目根目录下的 lib 文件夹下 --> | |
</dependency> |
再次打包就会把第三方(或称本地)的 jar 包打进去了