java - 强制 Maven 使用内部和外部依赖 jar

标签 java maven selenium jenkins

我已将 Jenkins 集成到我的 Maven Selenium Java 项目中。我有一个“SeleniumUtils-0.0.2-14.0.0.0.jar”,在 POM.xml 中引用为:

<dependency>
            <groupId>com.disney.gqe</groupId>
            <artifactId>SeleniumUtils</artifactId>
            <version>0.0.2-14.0.0.0</version> 
</dependency>

这个Jar是之前的编码员在本地交给我的。当时 Jenkins 构建还没有实现。 该项目在 Eclipse 中本地运行良好,引用 m2/repo 文件夹中的 jar。当我在 Jenkins 中使用“全新安装”进行构建时,出现错误: 中心下载:https://repo.maven.apache.org/maven2/com/disney/gqe/SeleniumUtils/0.0.2-14.0.0.0/SeleniumUtils-0.0.2-14.0.0.0.jar

我不希望 Maven 在中央搜索这个 jar,因为我在本地有它。如何在本地添加 Jenkins repo 文件夹中的文件并构建项目?

最佳答案

@JFMeier 是绝对正确的,您应该将依赖项放在托管的 Maven 存储库中。

但是,如果您没有,您可以执行以下操作:

<dependency>
  <groupId>com.disney.gqe</groupId>
  <artifactId>SeleniumUtils</artifactId>
  <version>0.0.2-14.0.0.0</version> 
  <scope>system</scope>
  <systemPath>path/to/the/jar</systemPath>
</dependency>

请注意,我并不是说这是一个好主意,但是具有系统范围的依赖关系将阻止 Maven 从外部查找依赖关系。

系统范围依赖项的问题是,现在每次有人(其他人)需要进行构建时,他们都必须将 jar 放在与您相同的位置。您可以通过在每个用户的 settings.xml 中引入属性参数来规避此问题,但现在您遇到了需要管理的维护问题。

您已收到警告。

关于java - 强制 Maven 使用内部和外部依赖 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60604813/

相关文章:

java - 多线程适合这种情况吗?

java - 构造期间的线程安全

java - xmx和MaxRAM JVM参数之间有什么区别?

python - 为什么 Selenium 的响应没有 sessionId?

java - Selenium 等待 AJAX 响应

java - 在 dropwizard REST API 中返回两个具有相同值的字段

maven - 如何提供对 Nexus 2.x 中 Artifact 的最新快照的 URL 访问?

java - 无法从 dropwizard 项目中排除 logback-classic 依赖项

java - 在 Intellij "create project from archetype"向导中显示自定义原型(prototype)属性

java - 用于 Cucumber 测试、selenium 测试和 AEM 的 SonarQube 插件