我正在开发一个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的日志消息没有出现在任何日志文件中。
我错过了什么?如何记录此消息?
答案 0 :(得分:0)
我希望在teamcity-server.log
文件中看到异常(加上堆栈跟踪)。您确定要检查该文件吗?
您所描述的行为可能是您使用与TeamCity的JRE不兼容的JDK版本构建插件的症状。例如,您使用Java 8构建插件,但您的TeamCity在Java 7下运行。在这种情况下,将检测到插件(就像您的情况一样)但在TC尝试调用它时会崩溃。