You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jenkins构建含Selenium/TestNG的Maven项目时Sikuli依赖报错

解决Jenkins构建Maven项目时SikuliX依赖jxgrabkey的HTTP仓库阻止问题

问题现象

Failed to collect dependencies at com.sikulix:sikulixapi:jar:1.1.0 -> jxgrabkey:jxgrabkey:jar:1.0: Failed to read artifact descriptor for jxgrabkey:jxgrabkey:jar:1.0: Could not transfer artifact jxgrabkey:jxgrabkey:pom:1.0 from/to maven-default-http-blocker (http://0.0.0.0/): Blocked mirror for repositories: [uni-due.de (http://mvn.is.inf.uni-due.de:8081/nexus/content/repositories/atunes-dependencies/, default, releases)]

问题根源

SikuliX 1.1.0依赖的jxgrabkey:jxgrabkey:1.0仅托管在HTTP协议的uni-due.de仓库,而现代Maven默认会通过maven-default-http-blocker镜像拦截所有HTTP仓库的访问,导致依赖拉取失败。


解决方案

方案1:升级SikuliX版本(推荐)

新版本SikuliX已将jxgrabkey依赖迁移至HTTPS协议的Maven Central仓库,无需访问不安全的HTTP源。修改项目pom.xml中的依赖配置:

<dependency>
    <groupId>com.sikulix</groupId>
    <artifactId>sikulixapi</artifactId>
    <version>1.1.4</version> <!-- 或更高稳定版本 -->
</dependency>

修改后重新触发Jenkins构建即可。

方案2:配置Maven允许访问该HTTP仓库(不推荐,存在安全风险)

若必须使用SikuliX 1.1.0,可通过以下步骤解除HTTP仓库拦截:

  1. 在项目pom.xml中添加仓库声明:
<repositories>
    <repository>
        <id>uni-due.de</id>
        <url>http://mvn.is.inf.uni-due.de:8081/nexus/content/repositories/atunes-dependencies/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
</repositories>
  1. 修改Jenkins服务器的Maven settings.xml:
    找到Jenkins使用的Maven配置文件(通常为~/.m2/settings.xml或Jenkins全局配置指定路径),修改maven-default-http-blocker的拦截规则:
<mirrors>
    <mirror>
        <id>maven-default-http-blocker</id>
        <mirrorOf>external:http:*</mirrorOf>
        <url>http://0.0.0.0/</url>
        <blocked>false</blocked> <!-- 取消HTTP仓库拦截 -->
    </mirror>
</mirrors>

或添加专属profile允许该仓库:

<profiles>
    <profile>
        <id>allow-uni-due-repo</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <repositories>
            <repository>
                <id>uni-due.de</id>
                <url>http://mvn.is.inf.uni-due.de:8081/nexus/content/repositories/atunes-dependencies/</url>
                <releases>
                    <enabled>true</enabled>
                </releases>
            </repository>
        </repositories>
    </profile>
</profiles>

方案3:手动安装jxgrabkey依赖到Maven仓库

手动下载jxgrabkey-1.0.jar,在Jenkins服务器上执行以下命令将依赖安装到本地Maven仓库:

mvn install:install-file -Dfile=jxgrabkey-1.0.jar -DgroupId=jxgrabkey -DartifactId=jxgrabkey -Dversion=1.0 -Dpackaging=jar

若Jenkins使用全局Maven仓库,需确保执行命令的用户拥有仓库写入权限。


内容的提问来源于stack exchange,提问作者VPS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 00:15:58