背景:我正在封闭网络中的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