2017-08-15 190 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>