镜像存储库在jfrog命令GitLabCi中被忽略



我们在 GitLab 中配置了一个 monorepo。结构为:

-project1
-pom.xml
-project2
-pom.xml
-project3
-pom.xml
-project4
-pom.xml
-settings.xml
-gitlab-ci.yaml

管道如下所示:

- mvn clean install -f project1/pom.xml -s settings.xml -DskipTests=true -DskipIT=true --batch-mode
- ./jfrog rt mvn "clean install -f project1/pom.xml -s settings.xml -DskipTests=true 
-DskipIT=true --batch-mode "artifactory_configuration.yml --build-name=xxxx --build-number=$CI_JOB_ID

设置.xml:

<mirrors>
<mirror>
<id>ecd-central</id>
<mirrorOf>*</mirrorOf>
<url>http://repository111.int/content/groups/public-ecd-2.0-cdf</url>
</mirror>
</mirrors>

似乎当jfrog命令运行时,它会忽略镜像,任何想法为什么:

Failed to read artifact descriptor for org.apache.felix:maven-bundle-plugin:jar:2.4.0: 
Could not transfer artifact org.apache.felix:maven-bundle-plugin:pom:2.4.0 from/to 
artifactory-release (http://swf-artifactory.int/artifactory/com.fc-snapshot): transfer failed
for http://swf-artifactory.int/artifactory/com.fc-snapshot/org/apache/felix/maven-bundle-
plugin/2.4.0/maven-bundle-plugin-2.4.0.pom, status: 409 Conflict -> [Help 2]

JFrog CLI 允许您在不使用 Maven 的settings.xml文件的情况下配置 Artifactory 服务器和存储库。如果已配置,它将覆盖settings.xml文件中的服务器。

基本上,您可以在单个 CLI 命令中配置 Artifactory 服务器和存储库,并将配置用于构建。

您可以通过以下 2 种方式配置服务器:

  1. 交互式:在本地计算机中,在根工作区中运行jfrog rt mvn-config。此命令创建.jfrog/projects/maven.yaml可以提交到项目源代码的文件。
  2. 非交互式:在 GitLab 脚本中,在根工作区中运行:
    jfrog rt mvn-config --server-id-resolve --repo-resolve-releases= --repo-resolve-snapshots= --server-id-deploy= --repo-deploy-releases=
    
    该命令将创建将在生成命令中使用的.jfrog/projects/maven.yaml

最终,您可以在不提供设置的情况下运行构建命令.xml文件:

/jfrog rt mvn "clean install -f project1/pom.xml -DskipTests=true 
-DskipIT=true --batch-mode "artifactory_configuration.yml --build-name=xxxx --build-number=$CI_JOB_ID

阅读更多:

  • 运行 Maven 构建
  • 完全控制您的 Maven 部署
  • 快速入门指南:Maven 和 Gradle

最新更新