当前位置: 首页 > 面试题库 >

Maven在远程文件存储库中找不到工件

公西凯捷
2023-03-14
问题内容

背景:我正在封闭网络中的Maven项目,这意味着我无法连接到Maven
Central。我有一个存储库文件夹,其中包含我需要的所有工件,包括插件和Maven工件。另外,我无法使用或安装Nexus。

问题:我想使用maven 3.6.0 / jdk 1.8.0_162运行Jenkins作业。我的settings.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  <localRepository>D:\Maven\repository</localRepository>

  <interactiveMode>false</interactiveMode>

  <offline>false</offline>

  <pluginGroups />

  <proxies />

  <servers />

  <mirrors>
    <mirror>
      <id>ExternalRespositoryMirror</id>
      <name>Maven External Repository Mirror</name>
      <url>file://myserver/repository/maven/repository</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>

  <profiles>
    <profile>
      <id>jenkins</id>
      <repositories>
        <repository>
          <id>central</id>
          <name>Maven External Dependencies Repository</name>
          <url>file://myserver/repository/maven/repository</url>
          <layout>default</layout>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>central</id>
          <name>Maven External Plugins Repository</name>
          <url>file://myserver/repository/maven/repository</url>
          <layout>default</layout>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>

  <activeProfiles>
    <activeProfile>jenkins</activeProfile>
  </activeProfiles>

</settings>

我的POM没有存储库部分,因为jenkins从属服务器应确定从何处获取这些存储库。

构建时,虽然出现以下错误:

[ERROR] Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies could not be resolved: Could not find artifact org.apache.maven.plugins:maven-clean-plugin:jar:2.5 in ExternalRespositoryMirror (file://myserver/repository/maven/repository) -> [Help 1]

我可以打开文件:// url,工件“ maven-clean-plugin-2.5.jar”位于文件夹\ maven \ repository \ org
\ apache \ maven \ plugins \ maven-clean-plugin \ 2.5中

Maven找不到工件的原因可能是什么?它存在于本地存储库(D:\ Maven \ repository)中,因此无论如何它实际上不应查询网络存储库。


问题答案:

您可能只想尝试将罐子安装到本地存储库中,然后跳过远程方面。Maven将在进入远程数据库之前先查看本地存储库。

安装第三方JAR的指南

创建一个pom进行复制,并将其绑定到process-resources阶段。您可以从已知位置拉出它们(例如:scp / robocopy /
unzip)(不要检入VCS;不当做法,浪费空间)并安装它们。

fyi,这与ether-ant
Tasks的工作相反,后者从amaven存储库中提取并复制到目标目录,这对于使用(nexus)存储库中的jar的ant构建非常有用,请参阅:

以太/蚂蚁任务

Apache Ant和Eclipse Aether



 类似资料:
  • 问题内容: 我正在使用Maven版本3.6.1 我想在Maven存储库(elasticsearch-rest-high-level-client 7.5.1)中下载工件。我可以在 maven-central-repository search 但是在搜索elasticsearch elasticsearch-rest-high-level-client/7.5.1给出的回购协议时,它们是Centr

  • 需要根据特定环境从两个远程存储库部署工件。所以我尝试在pom.xml的分发管理中使用配置文件 尝试激活个人资料 我得到以下错误。 部署失败:存储库元素没有指定在POM内部分布管理元素或在-DaltDeploymentRepository=id::布局::url参数 似乎pom无法识别分发管理标签。 但它在没有单一分销管理的配置文件的情况下运行良好。 有谁能给点建议吗? 参考 设置Maven以允许轻

  • 我有一个,具有以下依赖关系: 我尝试了几个其他版本,也从本地repo中删除了依赖项,并再次尝试,但没有帮助。会有什么问题?

  • JFrog artifactory看到了远程存储库的树,但没有看到其工件。 选择高级远程存储库设置中的“本地存储工件”设置。

  • 我有本地工作副本的SourceTree。所有操作都很好,我可以通过SourceTree进行简单的提取、推拉等操作。我只需要做一个在SourceTree中不存在的力推。 我打开终端做git推-f 我不确定什么是问题。

  • 问题内容: 我有一个构建过程,之后将我的战争上传到我们本地的Maven存储库。 当我们部署到TEST和PROD时,我想使用maven cargo插件并指定要部署到这些环境的版本。如何配置pom(或者可能是一个名为pom-deploy.xml的新pom)以从存储库中拉出特定的战争并进行远程部署? 谢谢 问题答案: 要在新项目中获取WAR文件,只需为其声明一个依赖项。