詹金斯建立不尊重第三方存储库?

时间:2011-12-08 22:38:44

标签: maven maven-2 jenkins pom.xml

我正在我的网络nexus实例上托管ojdbc14.jar,但只有本地版本似乎通过了。

我在我的pom中有这个:

  <repositories>
    <repository>
        <releases>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
        </releases>
        <id>thirdparty</id>
        <url>http://server/nexus/content/repositories/thirdparty</url>
    </repository>
  </repositories>

完成删除〜/ .m2 /后,本地mvn package将在nexus上找到ojdbc14.jar。相反,我的jenkins一直在构建失败:

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal 
org.csodehaus.mojo:sql-maven-plugin:1.3:execute (sql-ddl) on project mongo-dbunit: Execution 
sql-ddl of goal org.codehaus.mojo:sql-maven-plugin:1.3:execute failed: Plugin 
org.codehaus.mojo:sql-maven-plugin:1.3 or one of its dependencies could not be resolved: Could not find artifact com.oracle:ojdbc14:jar:10.2.0.4.0 in central 

为什么?

(http://repo1.maven.org/maven2)

3 个答案:

答案 0 :(得分:3)

在您执行任何操作之前,请安装Config File Provider Plugin

然后,

  1. 转到Jenkins根页
  2. 选择'管理Jenkins'
  3. 选择“配置文件”
  4. 选择类型'Maven settings.xml file'
  5. 将其命名为'custom-maven-settings'并剪切和粘贴〜/ .m2 / settings.xml文件的内容
  6. 现在回到你的Maven2 / 3工作。

    1. Build部分,点击Advanced按钮
    2. Maven Settings Configs下拉框中选择custom-maven-settings
    3. 此设置适用于我们的自定义存储库。

答案 1 :(得分:1)

您的POM中有<repositories>部分,但不是<pluginRepositories>部分。 Maven过去对编译时工件依赖项和插件依赖项之间的区别更加草率,但在较新版本的Maven中,它们完全是分开的。

正如其他人所指出的那样,通过在Jenkins之外的命令行运行Maven可能更容易解决这个问题。只是在与你正在开发的机器不同的机器上进行构建通常会带来很多问题。

以下是一些documentation on the POM,可能会有所帮助。

答案 2 :(得分:0)

我会检查并确保两台机器上的Maven设置相同。

Jenkins默认使用 $ HOME / .m2 / settings.xml 中的文件。 Jenkins作业也可以覆盖此默认值。