自定义TeamCity插件已上传,但似乎无法执行

时间:2016-10-16 22:07:29

标签: plugins teamcity

我正在开发一个TeamCity插件,我甚至无法让TeamCity执行它。

我使用插件上传zip文件并重新启动TeamCity,然后我可以看到外部插件列表中的插件,它也会被解压缩到 .BuildServer / plugins / .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的日志消息没有出现在任何日志文件中。

我错过了什么?如何记录此消息?

1 个答案:

答案 0 :(得分:0)

我希望在teamcity-server.log文件中看到异常(加上堆栈跟踪)。您确定要检查该文件吗?

您所描述的行为可能是您使用与TeamCity的JRE不兼容的JDK版本构建插件的症状。例如,您使用Java 8构建插件,但您的TeamCity在Java 7下运行。在这种情况下,将检测到插件(就像您的情况一样)但在TC尝试调用它时会崩溃。