【问题标题】:Custom TeamCity plugin is uploaded but doesn't seem to get executed自定义 TeamCity 插件已上传,但似乎没有执行
【发布时间】:2016-10-17 14:39:12
【问题描述】:

我正在开发一个 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 的日志消息没有出现在任何日志文件中。

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

【问题讨论】:

    标签: plugins teamcity


    【解决方案1】:

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

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

    【讨论】:

    • 在同一个 Java 版本上编译和执行的所有内容,logs.teamcity-server.logs 中没有错误不存在
    • 那么您的 run() 方法似乎根本没有被调用。最好看看一个实际上也能做某事的现有插件(GitHub 上有很多插件),看看它们如何连接到 TC 事件以触发它们的功能。然后,您可以尝试在您的无操作插件中重现其中的一小部分。
    猜你喜欢
    • 1970-01-01
    • 2012-01-22
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 2022-01-19
    • 1970-01-01
    相关资源
    最近更新 更多