我们有一个项目 A
,它引用了托管在我们的 JFROG 存储库上的自定义父 pom B
。
当我们的Github操作构建项目时,我们提供了一个< code>settings.xml文件,该文件包含到JFROG存储库的连接,允许操作在本地存储库中下载父pom。
然后,Github Actions worflow的第二步使用maven插件启动Sonarqube分析:mvn.org.sonarsource.scanner.maven:sonar-maven插件:sonar
。该步骤不需要下载任何自html" target="_blank">定义依赖项,因此我们不提供settings.xml
文件,但该步骤失败,因为maven仍然尝试从远程存储库(Central)下载父pom,但没有找到它。
我不明白为什么 maven 尝试下载父 pom,尽管它已经下载并且在本地存储库中可用......
我们使用缓存操作来确保本地 maven 存储库不会在步骤之间被删除,在启动 Sonarqube maven 插件之前,我检查了父 pom 是否在本地存储库中可用......
我已经将 Maven 置于离线模式以强制它使用其本地存储库中的 pom,但它再次失败,就像 Maven 没有使用此本地存储库一样。
我不认为问题可能来自 Github 操作,我不明白为什么 Maven 不使用本地存储库......
好的,我实际上已经找到了原因,并在这篇文章中进行了解释:maven找不到我的本地工件
总而言之,pom 是从我们的 JFrog 存储库下载的,Maven 创建了一个_remote.repository 的文件
,以跟踪依赖项来自的存储库。
当第二步在没有连接到此 JFrog 存储库的情况下执行 Maven 时,Maven 会忽略依赖关系,因为它来自此执行未使用的仓库,并尝试再次解析依赖关系。它是一种安全功能。
绕过此功能的解决方案是添加具有未知值的属性< code > aether . enhanced local repository . tracking filename :< code >-da ether . enhanced local repository . tracking filename = some _ existing _ dummy _ file _ name 。
在maven设置中,有一个单独的< code>updatePolicy用于发布和快照。默认设置为< code >每日:
<repositories>
<repository>
<releases>
<updatePolicy>daily</updatePolicy>
</releases>
<snapshots>
<updatePolicy>daily</updatePolicy>
</snapshots>
因此,如果您的本地存储库中的文件超过一天,并且您没有settings.xml,maven将下载依赖项以确保正确。
解决方法是提供一个设置.xml文件
问题内容: 是否有任何东西可以将整个远程存储库(例如,从http://repo1.maven.org/maven2/)获取到我的本地存储库(至)? 问题答案: 从http://maven.apache.org/community.html: 做个好行者 内置于Maven核心体系结构中的公共存储库的概念使其必然以社区为中心。Maven用户可以做一些简单的事情来帮助保持社区的繁荣。 成为一种公共存储库
在我的绒球中.xml我有 在我的settings.xml中,我在活动配置文件的存储库列表中配置了以下内容。 但在local.m2/repository中,我找不到任何这样的目录路径com/google/protobuf,并且我的项目中protoc生成的java文件没有编译,错误如下 java: package com.google.protobuf 不存在 版本3.6.1。我在pom.xml中使用
我对maven是新手,在将pom.xml中定义的依赖项下载到本地存储库时遇到了问题。正确下载pom.xml中定义的所有其他依赖项。此外,跨多个项目的其他依赖关系也运行良好。我使用的是maven 3.5.2和aws sdk 1.11.86 导致问题的依赖项是定义为的aws红移驱动程序- Maven存储库- 我的本地回购协议有以下内容- 我已经删除了本地文件。上次更新的文件,但无法解决此问题<有什么想
我已经成功地与另一位现场开发人员一起使用GitLab,开发了C和MATLAB中的小型项目。 在家使用VPN工作时,我将一个大型LabVIEW程序推到了一个新项目中,这样我就可以与另一个非现场开发人员一起工作。开发人员克隆了该项目,并开始开发一个分支。 问题是我无法提取/获取此分支。GitLab正在显示开发人员所做的分支和提交。 我使用git的时间不长,所以我可能只是太傻了。 Git推送:“致命的‘
问题内容: 我想在我的Java程序中使用这个android依赖项: 所以我将所有插件和存储库添加到了我的maven pom文件中: 然后,将依赖项添加到同一文件中: 但是没有任何反应,maven会忽略它,好像它不存在一样,如果我将其主包导入scala文件并使用构建它,则会收到此错误: [错误] /home/peng/git- drone/dronespike/src/main/scala/Main
所以我有一个企业存储库,那里有已经部署的主POM。现在我有其他项目,我需要单独安装,但他们有父pom。 每当我进行mvn清理安装时,我都无法找到父pom的工件。 我的本地设置。xml为central定义了镜像,因为我假设maven首先尝试在relativePath中搜索父pom,然后是本地repo,最后是远程repo。父POM具有所有提到的存储库和分发详细信息,因此其他项目或本地设置中不存在这些回
有没有办法使用java或任何其他语言从maven存储库下载jar文件? 在Maven项目中,当我添加依赖项时,如果本地系统上不存在jar文件,它通常会从远程存储库下载jar文件。 有没有办法做到这一点,而不用像在库中那样使用Maven,或者构造一个URL,然后获取jar?
问题内容: 我已经构建了Gradle插件并将其发布到本地Maven存储库。我可以在〜/ .m2 /存储库中看到它。但是,当我运行Gradle项目以使用此插件时,它甚至不会在本地存储库中查找……至少,并非基于输出。 当从命令行运行时,它将报告此信息: 失败:生成失败,发生异常。 其中:构建文件“ D:\ Work \ MuseProject \ update4j-gradle-plugin \ ex