2017-08-15 131 views
0

我有一种情况,我第一次开发了自己的Jenkins插件。该插件的主要目的是向Google云端平台发布消息。我在Jenkins编写的所有代码在eclipse的本地环境中工作正常。但是当我在Jenkins中使用相同的代码时,它会导致一些依赖性错误。任何帮助真的很感激。詹金斯插件如何工作

谢谢。

说明: Jenkins和Eclipse在同一台机器上 Jenkins如何解决它的依赖关系对我来说真的是一个问题。

+0

分享错误日志和pom文件。有了这些信息,您无法获得帮助解决您的问题。 – Suresh

+0

错误就像**找不到功能性渠道服务提供商。尝试在GRPC-okhttp或GRPC-网状神器** – PhaniKumar

+0

com.google.cloud 谷歌云 - 发布 - 订阅 0.20.1-β COM添加依赖。 google.api GAX 1.4.0 com.google.auth 谷歌认证 - 库凭证 0.7.1 io.grpc GRPC-protobuf的 1.4.0 PhaniKumar

回答

0

Eclipse在从Eclipse运行插件时使用M2eclipse插件将您的依赖项添加到类路径中。

Jenkins只解决插件之间的依赖关系。此外,詹金斯期望.hpi包是自包含的,即包含您需要的所有JAR依赖关系。 mvn package应复制所有依赖关系的罐子并将它们放在WEB-INF/lib文件夹中的.hpi文件中。

在特定情况下,它似乎是谷歌云实施预计classpath中的通道服务提供商的一些实现,所以你应该加上GRPC-okhttp或GRPC,网状的依赖,使他们获得打包成.hpi文件以及。

0

有时可能会出现类加载器问题的选择,因此请在调用Google类之前添加以下代码行。 ()。getClassLoader()。getClassLoader());方法详细信息ThreadCurrentThread()。setContextClassLoader(getClass()。getClassLoader());

还在Jenkins plugin pom.xml中添加下面的代码来指定Jenkins,应该首先加载pom.xml中的依赖项,而不是Jenkins依赖项。

<pluginManagement> 
    <plugins> 
     <plugin> 
      <groupId>org.jenkins-ci.tools</groupId> 
      <artifactId>maven-hpi-plugin</artifactId> 
      **<configuration> 
      <pluginFirstClassLoader>true</pluginFirstClassLoader> 
      </configuration>** 
     </plugin> 
    </plugins> 
</pluginManagement>