在咱们写代码的时候经常会遇到这样一个"倔强"的现象,pom.xml
文件中依赖的jar包没法下载,不管是直接 mvn clean 仍是先清空jar
所在的本地仓库中的last
unknow
文件 | 文件夹,都仍然没法下载到依赖.apache
绝大多数是网络问题致使不能从maven下载.也不排除部分没有开源的项目.网络
以上解决思路虽然均可以解决缺乏依赖的问题,但操做起来不太优雅,此时咱们可使用 Maven 提供的插件来解决这个问题- 以下案例:maven
[ 场景 ] : 在使用 kaptcha2.3 (com.google.code.kaptcha)作验证码时,maven不能像正常下载到依赖.ui
[ 解决 ] : 建立一个专门的管理此种现象的依赖模块(modules),如图:项目结构google
注 :插件
(1)libs
存放所须要的依赖 jar
文件, 可在https://mvnrepository.com搜索手动下载code
(2)pom.xml
增长插件配置 : maven-install-plugin --> 做用: 经过该插件,咱们能够在执行 mvn clean 命令时将项目所须要的依赖自动安装进本地仓库xml
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>com.hjj</groupId> <artifactId>my-shop-dependencies</artifactId> <version>1.0.0-SNAPSHOT</version> <relativePath>../my-shop-dependencies/pom.xml</relativePath> </parent> <artifactId>my-shop-external</artifactId> <packaging>jar</packaging> <name>my-shop-external</name> <description></description> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-install-plugin</artifactId> <executions> <execution> <id>install-external-kaptcha</id> <!-- 触发时机:执行 mvn clean 命令时自动触发插件 --> <phase>clean</phase> <configuration> <!-- 存放依赖文件的位置 --> <file>${project.basedir}/libs/kaptcha-2.3.jar</file> <repositoryLayout>default</repositoryLayout> <!-- 自定义 groupId --> <groupId>com.google.code.kaptcha</groupId> <!-- 自定义 artifactId --> <artifactId>kaptcha</artifactId> <!-- 自定义版本号 --> <version>2.3</version> <!-- 打包方式 --> <packaging>jar</packaging> <!-- 是否自动生成 POM --> <generatePom>true</generatePom> </configuration> <goals> <goal>install-file</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </project>
最后,经过 mvn clean
命令便可将项目所须要的依赖自动安装进本地仓库.blog