rewrite-maven-plugin解析POM耗时久:如何指定排除无法访问的仓库?
解决rewrite-maven-plugin仓库超时停滞问题
可以通过以下几种方式排除无法访问的仓库,避免插件长时间停滞:
1. 在Maven settings.xml中标记仓库为不可用
找到Maven settings.xml文件(通常在~/.m2/settings.xml或项目根目录),添加配置将受防火墙限制的仓库标记为blocked,Maven会直接跳过这些仓库的访问尝试:
<settings> <profiles> <profile> <id>block-unreachable-repos</id> <activation> <activeByDefault>true</activeByDefault> </activation> <repositories> <repository> <id>some-nexus-releases</id> <url>http://some.nexushost/content/repositories/releases/</url> <blocked>true</blocked> </repository> <repository> <id>some-nexus-thirdparty</id> <url>http://some.nexushost/content/repositories/thirdparty/</url> <blocked>true</blocked> </repository> </repositories> </profile> </profiles> </settings>
2. 在rewrite插件配置中显式指定可用仓库
直接在项目pom.xml的rewrite-maven-plugin配置里,只列出可正常访问的仓库,覆盖项目默认的仓库列表,插件只会尝试访问这些指定仓库:
<plugin> <groupId>org.openrewrite.maven</groupId> <artifactId>rewrite-maven-plugin</artifactId> <version>5.42.0</version> <configuration> <activeRecipes> <recipe>org.openrewrite.java.spring.boot2.SpringBoot2JUnit4to5Migration</recipe> <recipe>org.openrewrite.java.testing.cleanup.TestsShouldNotBePublic</recipe> </activeRecipes> <repositories> <repository> <id>central</id> <url>https://repo1.maven.org/maven2/</url> </repository> <!-- 按需添加其他可访问的仓库 --> </repositories> </configuration> </plugin>
3. 缩短仓库访问超时时间(临时缓解)
如果不想排除仓库,可通过settings.xml缩短连接和读取超时时间,减少等待时长:
<settings> <servers> <server> <id>some-nexus-releases</id> <configuration> <connectTimeout>5000</connectTimeout> <!-- 5秒连接超时 --> <readTimeout>10000</readTimeout> <!-- 10秒读取超时 --> </configuration> </server> <server> <id>some-nexus-thirdparty</id> <configuration> <connectTimeout>5000</connectTimeout> <readTimeout>10000</readTimeout> </configuration> </server> </servers> </settings>
内容的提问来源于stack exchange,提问作者Nicholas DiPiazza
相关产品推荐
相关产品推荐

