通过JFrog使用Maven时无法找到远程仓库问题排查
问题:CircleCI中使用JFrog CLI执行Maven构建报错
RemoteRepositoryFilterManager为null 本地执行mvn clean install可正常生成JAR包,但在CircleCI中通过JFrog CLI运行./jfrog rt mvn clean install时触发以下错误:
[main] ERROR org.apache.maven.cli.MavenCli - Cannot invoke "org.eclipse.aether.impl.RemoteRepositoryFilterManager.getRemoteRepositoryFilter(org.eclipse.aether.RepositorySystemSession)" because "this.remoteRepositoryFilterManager" is null
CircleCI配置文件config.yml如下:
version: 2.1 jobs: create-build-package: docker: - image: cimg/openjdk:17.0.10 working_directory: ~/repo steps: - checkout - run: name: Install JFrog CLI command: curl -fL https://getcli.jfrog.io | sh - run: name: Configure JFrog Creds command: | ./jfrog config add myCompany \ --artifactory-url $ARTIFACTORY_URL \ --user $ARTIFACTORY_USER \ --apikey $ARTIFACTORY_APIKEY \ --interactive=false - run: name: Create Maven Build Config command: ./jfrog rt mvnc - run: name: Install Maven command: | ./jfrog rt mvn clean install - run: name: Upload Package to JFrog command: | ./jfrog rt u "multi*/*.jar" release \ --build-name=karate \ --build-number=$CIRCLE_BUILD_NUM \ --flat=false ./jfrog rt bce karate $CIRCLE_BUILD_NUM # collects all environment variables on the agent ./jfrog rt bp karate $CIRCLE_BUILD_NUM # attaches ^^ to the build in artifactory workflows: build: jobs: - create-build-package: context: artifactory
POM文件未配置任何JFrog仓库引用。
解决方案
这个错误通常是Maven版本与JFrog CLI不兼容、环境中未正确安装Maven导致的,可按以下步骤排查修复:
1. 先安装兼容的Maven版本
cimg/openjdk:17.0.10镜像默认未预装Maven,JFrog CLI调用的Maven可能存在版本兼容问题。在执行JFrog构建命令前,先安装指定版本的Maven:
修改CircleCI配置,在Install JFrog CLI步骤后添加:
- run: name: Install Maven 3.9.6 command: | wget https://dlcdn.apache.org/maven/maven-3/3.9.6/binaries/apache-maven-3.9.6-bin.tar.gz tar xzf apache-maven-3.9.6-bin.tar.gz sudo mv apache-maven-3.9.6 /opt/maven echo 'export PATH=/opt/maven/bin:$PATH' >> $BASH_ENV source $BASH_ENV mvn -version
2. 改用系统Maven配合JFrog生成的配置文件
./jfrog rt mvnc会生成settings.xml,直接使用系统Maven命令并指定该配置文件,避免JFrog CLI封装的Maven调用问题:
将原Install Maven步骤替换为:
- run: name: Run Maven Build command: mvn clean install -s settings.xml
3. 升级JFrog CLI到最新版本
旧版JFrog CLI与Maven 3.8+存在兼容性bug,确保安装最新版本:
- run: name: Install JFrog CLI command: curl -fL https://getcli.jfrog.io | sh && ./jfrog -v
内容的提问来源于stack exchange,提问作者Adrian Alan
相关产品推荐
相关产品推荐

