执行mvn clean install时遭遇Maven DependencyResolutionException错误
解决Maven DependencyResolutionException:无法找到指定依赖构件的问题
我来帮你搞定这个Maven依赖解析的问题!你运行mvn clean install时触发的DependencyResolutionException,核心原因是Maven找不到nl.jworks.markdown_to_asciidoc:markdown_to_asciidoc:jar:1.0和ch.netzwerg:paleo-core:jar:0.11.0这两个构件,而且本地仓库已经缓存了“查找失败”的状态,所以默认情况下不会主动重新尝试拉取。
下面是具体的解决步骤:
1. 强制刷新依赖缓存(优先尝试)
直接运行带-U参数的安装命令,这个参数会让Maven跳过本地缓存的失败记录,强制从远程仓库重新拉取所有依赖:
mvn clean install -U
这是最直接的解决方法,很多时候缓存导致的依赖问题都能通过这个命令解决。
2. 定位依赖的来源(排查用)
如果你想搞清楚这两个依赖是从哪个直接依赖传递过来的,可以用dependency:tree命令生成依赖树,精准定位:
mvn dependency:tree -Dincludes=nl.jworks.markdown_to_asciidoc,ch.netzwerg:paleo-core
从你提供的pom.xml来看,这两个依赖大概率是io.github.swagger2markup:swagger2markup:1.3.3或者对应的Maven插件间接引入的。
3. 添加缺失的仓库(如果强制刷新无效)
如果执行了第一步还是找不到依赖,说明这两个构件不在默认的Maven中央仓库里,需要在pom.xml中添加对应的第三方仓库。你可以在<project>节点下添加以下仓库配置:
<repositories> <repository> <id>jcenter</id> <url>https://jcenter.bintray.com/</url> </repository> <repository> <id>spring-milestones</id> <url>https://repo.spring.io/milestone</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>jcenter</id> <url>https://jcenter.bintray.com/</url> </pluginRepository> </pluginRepositories>
旧版本的swagger2markup依赖的部分构件确实只存在于这些第三方仓库中,添加后应该就能正常拉取了。
你提供的项目pom.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 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.fengmaotec</groupId> <artifactId>admin</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>admin</name> <description>fengmaotec admin project for Spring Boot</description> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.6.RELEASE</version> <relativePath/><!-- lookup parent from repository --> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <mybatis.spring.boot.starter.version>2.1.2</mybatis.spring.boot.starter.version> <mybatis.plus.boot.starter.version>3.3.1</mybatis.spring.boot.starter.version> <swagger.version>2.9.2</swagger.version> <fastjson.version>1.2.68</fastjson.version> <freemarker.version>2.3.29</freemarker.version> <ECharts.version>4.7.0.1</ECharts.version> <!-- 打包跳过测试 --> <skipTests>true</skipTests> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web-services</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>${mybatis.spring.boot.starter.version}</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <!--常用工具类 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis.plus.boot.starter.version}</version> </dependency> <!-- swagger2--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${swagger.version}</version> <exclusions> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> </exclusion> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> </exclusion> </exclusions> </dependency> <!--防止进入swagger页面报类型转换错误,排除2.9.2中的引用,手动增加1.5.21版本--> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-annotations</artifactId> <version>1.5.21</version> </dependency> <dependency> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> <version>1.5.21</version> </dependency> <!-- swagger2-UI--> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${swagger.version}</version> </dependency> <!--阿里 FastJson依赖--> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${fastjson.version}</version> </dependency> <!--代码生成器依赖--> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>${freemarker.version}</version> <scope>provided</scope> </dependency> <!--测试--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- 安全框架 --> <!-- <dependency>--> <!-- <groupId>org.springframework.boot</groupId>--> <!-- <artifactId>spring-boot-starter-security</artifactId>--> <!-- </dependency>--> <!-- https://mvnrepository.com/artifact/io.github.swagger2markup/swagger2markup --> <dependency> <groupId>io.github.swagger2markup</groupId> <artifactId>swagger2markup</artifactId> <version>1.3.3</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>io.github.swagger2markup</groupId> <artifactId>swagger2markup-maven-plugin</artifactId> <version>1.2.0</version> <configuration> <!--此处端口一定要是当前项目启动所用的端口--> <swaggerInput>http://localhost:8080/v2/api-docs?group=api</swaggerInput> <outputDir>src/docs/asciidoc/generated/all</outputDir> <config> <!-- 除了ASCIIDOC之外,还有MARKDOWN和CONFLUENCE_MARKUP可选 --> <swagger2markup.markupLanguage>ASCIIDOC</swagger2markup.markupLanguage> </config> </configuration> </plugin> <plugin> <groupId>org.asciidoctor</groupId> <artifactId>asciidoctor-maven-plugin</artifactId> <version>1.5.3</version> <!-- Include Asciidoctor PDF for pdf generation --> <dependencies> <dependency> <groupId>org.asciidoctor</groupId> <artifactId>asciidoctorj-pdf</artifactId> <version>1.5.0-alpha.10.1</version> </dependency> <dependency> <groupId>org.jruby</groupId> <artifactId>jruby-complete</artifactId> <version>1.7.21</version> </dependency> </dependencies> <!-- Configure generic document generation settings --> <configuration> <sourceDirectory>src/docs/asciidoc/generated/all</sourceDirectory> <sourceHighlighter>coderay</sourceHighlighter> <attributes> <toc>left</toc> </attributes> </configuration> <!-- Since each execution can only handle one backend, run separate executions for each desired output type --> <executions> <execution> <id>output-html</id> <phase>generate-resources</phase> <goals> <goal>process-asciidoc</goal> </goals> <configuration> <backend>html5</backend> <outputDirectory>src/docs/asciidoc/html</outputDirectory> </configuration> </execution> <execution> <id>output-pdf</id> <phase>generate-resources</phase> <goals> <goal>process-asciidoc</goal> </goals> <configuration> <backend>pdf</backend> <outputDirectory>src/docs/asciidoc/pdf</outputDirectory> </configuration> </execution> </executions> </plugin> </plugins> </build> </project>
内容的提问来源于stack exchange,提问作者Top-Dev-Ops
相关产品推荐
相关产品推荐

