Я играю с установкой TeamCity и разрабатываю плагин, расширяющий BuildServerAdapter. Когда я упаковываю его и устанавливаю на сервер, teamcity-server.log содержит записи для моего подключаемого модуля:
Плагин также указан на странице плагинов в администрировании сервера.
Кроме того ... ничего. Я ввел различные операторы журнала как через средство ведения журнала, так и через System.out, и я их не вижу.Я даже добавил исключение в конструктор, и я не вижу никаких свидетельств этого в системных журналах. Когда происходит сборка, снова нет свидетельств того, что мой код вызван.
public class CustomBuildServerAdapter extends BuildServerAdapter {
private SBuildServer myBuildServer;
private static final Logger LOG = Logger.getLogger(CustomBuildServerAdapter.class);
private void debug(String msg) { LOG.debug(msg); System.out.println(msg); }
public CustomBuildServerAdapter(SBuildServer aBuildServer) throws Exception {
throw new Exception("constructor is being called, at least we know that...");
//myBuildServer = aBuildServer;
//debug("constructor");
}
public void register() {
debug("registering");
myBuildServer.addListener(this);
debug("registered");
}
public void buildFinished(SRunningBuild build) {
debug("build finished");
postMessage(build.getFullName() + " - " + build.getStatusDescriptor().getText());
debug("message posted");
}
...
ZIP-архив, который я копирую в .BuildServer \ plugins
, имеет следующую структуру:
Если посмотреть на другие плагины, они используют следующую структуру, поэтому я тоже пробовал.
Мой build-server-plugin.xml содержит следующее:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans default-autowire="constructor">
<bean id="myplugin" class="com.blah.blah.blah.CustomBuildServerAdapter" init-method="register"/>
</beans>
Я часть пути туда, так как журнал teamcity-server.log содержит указать, что он знает о плагине и больше не генерирует исключение при его загрузке. К сожалению, не ошибаться - это не то же самое, что работать.
Используя сценарии сборки ant из образца плагина, я получаю следующую ошибку, поэтому я упаковывал вещи вручную. Это приводит к кажущейся успешной загрузке, как указано выше.
Не удалось инициализировать контекст Spring для подключаемого модуля MyTeamCityPlugin. Ошибка при создании bean-компонента с именем simpleRunnerRunType: не удалось создать экземпляр bean-компонента.
Может ли кто-нибудь дать мне толчок, чтобы это работало правильно?