繁体   English   中英

外部Maven回购和詹金斯

[英]external maven repo and jenkins

我有一个外部jar(意味着在公共仓库中不可用),我希望将其包含在我的构建中。 我使用了以下网站上的说明: http : //charlie.cu.cc/2012/06/how-add-external-libraries-maven/,并且在我将mvn安装到PC上时也可以使用。 但是,当我使用Jenkins构建Maven项目时,出现以下错误:

执行Maven:-B -f D:\\ Program Files(x86)\\ Jenkins \\ workspace \\ rmy job \\ pom.xml安装[INFO]扫描项目... [INFO]

[信息]

[INFO]建筑物xxxxxx 0.0.1-SNAPSHOT [INFO]

[警告]缺少sqljdbc:sqljdbc_4.0:jar:v4的POM,没有可用的依赖项信息

[信息]

[INFO]建立失败[INFO] ------------------------------------------ ------------------------------ [INFO]总计

时间:1.705秒[INFO]完成时间:2014年2月11日星期二10:29:23

[INFO]最终内存:13M / 307M [错误]无法在项目xxxxxx上执行目标:无法解析项目com.xx:xxxxxxx:jar:0.0.1-SNAPSHOT的依赖项:找不到sqljdbc:sqljdbc_4.0:jar http://repository.codehaus.org/org/codehaus中的:v4已缓存在本地存储库中,直到codehaus的更新间隔或强制执行更新后,才会重新尝试解析-> [帮助1]

我正在使用的pom具有以下用于存储库的条目:

    <repositories>
<repository>
    <id>codehaus</id>
    <url>http://repository.codehaus.org/org/codehaus</url>
</repository>

<!-- In Project repository -->
<repository>
    <id>in-project</id>
    <name>In Project Repo</name>
    <url>file://${project.basedir}/libs</url>
</repository>

任何想法为什么会这样?

经过一番尝试,我在pom.xml中做了以下解决方法

<repository>
    <id>in-project</id>
    <name>In Project Repo</name>
    <url>file://${project.basedir}/libs</url>
</repository>

<dependency>
    <groupId>sqljdbc</groupId>
    <artifactId>sqljdbc_4.0</artifactId>
    <version>v4</version>
      <scope>system</scope>
    <systemPath>${project.basedir}/libs/sqljdbc/sqljdbc_4.0/v4/sqljdbc_4.0-v4.jar</systemPath>
</dependency>

这意味着系统路径是一个整体,而不仅仅是

 <url>file://${project.basedir}/lib</url>

如上所述。 通过这种“变通方法”,我可以在本地和远程工作(Jenkins-Git)

通常,我始终强烈建议

  • 使用Maven Repository Manager(例如Nexus)
  • 仅在Maven Repository Manager中管理存储库,而不在POM中管理存储库
  • 使用Maven资源库管理器来托管其他任何资源库都无法提供的第三方库
  • 配置您的设置文件

这是获得稳定且可复制的内部版本的关键-即使其中一个存储库暂时不可用。

实际上,这可能是hppen无法从lib获取jar。

用其他方式。

  1. 右键项目
  2. 选择物业
  3. Java构建路径
  4. 选择库
  5. 添加外部jar并放置jar文件的设置路径
  6. 清理并构建您的项目。

要么

    <repositories>
        <repository>
        <id>local123</id>
        <name>localRepo</name>
        <url>file://${project.basedir}/lib</url>
        </repository>
     </repositories>

尝试将这段代码放在pom.xml文件中。

希望您的问题可以使用此解决。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM