[英]How Jenkins plugins works
我遇到了第一次開發自己的Jenkins插件的情況。 該插件的主要目的是向Google Cloud Platform發布消息。 我在Jenkins中編寫的所有代碼都可以在eclipse的本地環境中正常工作。 但是,當我在Jenkins中使用相同的代碼時,會導致一些依賴項錯誤。 任何幫助都非常感謝。
謝謝。
注意: Jenkins和Eclipse在同一台計算機上,這確實是我關心的一個問題。
從Eclipse運行插件時,Eclipse使用M2eclipse插件將依賴項添加到類路徑。
Jenkins僅解決插件之間的依賴關系。 此外,Jenkins期望.hpi軟件包是獨立的,即包含您需要的所有JAR依賴項。 mvn package
應該復制所有依賴項的jar文件,並將它們放在WEB-INF/lib
文件夾中的.hpi文件中。
在您的特定情況下,似乎Google Cloud實現期望在類路徑上實現某種渠道服務提供商,因此您應該添加對grpc-okhttp或grpc-netty的依賴項,以便它們也打包到.hpi文件中。
有時可能會選擇類加載器問題,因此請在調用Google類之前添加以下代碼行。
Thread.currentThread()setContextClassLoader(的getClass()getClassLoader()。)。
還要在Jenkins插件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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.