我正在我的网络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)
答案 0 :(得分:3)
在您执行任何操作之前,请安装Config File Provider Plugin
然后,
现在回到你的Maven2 / 3工作。
Build
部分,点击Advanced
按钮Maven Settings Configs
下拉框中选择custom-maven-settings
此设置适用于我们的自定义存储库。
答案 1 :(得分:1)
您的POM中有<repositories>
部分,但不是<pluginRepositories>
部分。 Maven过去对编译时工件依赖项和插件依赖项之间的区别更加草率,但在较新版本的Maven中,它们完全是分开的。
正如其他人所指出的那样,通过在Jenkins之外的命令行运行Maven可能更容易解决这个问题。只是在与你正在开发的机器不同的机器上进行构建通常会带来很多问题。
以下是一些documentation on the POM,可能会有所帮助。
答案 2 :(得分:0)
我会检查并确保两台机器上的Maven设置相同。
Jenkins默认使用 $ HOME / .m2 / settings.xml 中的文件。 Jenkins作业也可以覆盖此默认值。