2016-10-16 22 views
-1

我正在開發一個TeamCity插件,我甚至無法獲得由TeamCity執行的插件。自定義TeamCity插件已上傳,但似乎沒有得到執行

我上傳與插件的zip文件並重新啓動TeamCity的,那麼我可以看到外部插件的列表上的插件,它也被解壓到.BuildServer /插件/ .unpacked但除此之外,沒有任何反應。

它似乎並沒有運行插件。 (我甚至不看任何日誌文件的插件名稱)

我簡單的嘗試是剛剛創建Maven原型插件:

mvn archetype:generate -DarchetypeRepository=http://download.jetbrains.com/teamcity-repository -DarchetypeArtifactId=teamcity-server-plugin -DarchetypeGroupId=org.jetbrains.teamcity.archetypes -DarchetypeVersion=RELEASE 

,然後只添加一些記錄:

package com.example.plugin; 

import jetbrains.buildServer.log.Loggers; 

public class AppServer { 

    public void run() { 
     Loggers.SERVER.info("I'm running"); 
    } 
} 

,並創建init方法所需的bean:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd" 
    default-autowire="constructor"> 

    <bean id="appServer" class="com.example.plugin.AppServer" init-method="run"/> 
</beans> 

我上傳插件,重啓TeamCity,但來自AppServer的日誌消息不會出現在任何日誌文件中。

我錯過了什麼?如何記錄此消息?

回答

0

我期望在teamcity-server.log文件中看到一個異常(加上堆棧跟蹤)。你確定你檢查過這個文件嗎?

您描述的行爲可能是您構建插件的一個JDK版本與TeamCity的JRE不兼容的症狀。例如,您使用Java 8構建插件,但是您的TeamCity正在Java 7下運行。在這種情況下,插件將被檢測到(如您的情況),但當TC嘗試調用插件時會崩潰。

+0

在相同的Java版本上編譯和執行的所有東西都沒有,logs.teamcity-server.logs中也沒有錯誤 – attir

+0

然後看起來你的'run()'方法根本沒有被調用。最好看一下現有的插件實際上也做了一些事情(GitHub上有很多插件),並且看看它們如何掛鉤TC事件以觸發它們的功能。然後,您可以嘗試在無插件插件中重現小部分內容。 – sferencik

相關問題