Я играю с установкой TeamCity и разрабатываю плагин, который расширяет BuildServerAdapter.Когда я упаковываю его и устанавливаю на сервер, teamcity-server.log содержит записи для моего плагина:
- , найденные при сканировании папки плагинов (.BuildServer \ plugins)
- плагин регистрации агента из плагина сервера
- загружается в общий загрузчик классов * загружается 1008 *
Плагин также указан на странице плагинов в администрировании сервера.
Помимо этого ... ничего.Я вставил различные операторы журнала, как через logger, так и через 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");
}
...
Почтовый индекс, который я копирую в .BuildServer\plugins
, имеет следующую структуру:
- MyTeamCityPlugin.zip
- teamcity.plugin.xml
- сервер
- MyTeamCityPlugin.jar
- папок с файлами классов
- META-INF
- build-server-plugin.xml
- MANIFEST.MF
Просмотр других плагинов, они используют следующую структуру, поэтому я попробовал это также.
- MyTeamCityPlugin.zip
- MyTeamCityPlugin
- teamcity.plugin.xml
- MyTeamCityPlugin.jar
- папки с файлами классов
- META-INF
- build-server-plugin.xml
- MANIFEST.MF
Мой 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 из примера плагина, я получаю следующую ошибку, поэтому я упаковывал вещи вручную.Это приводит к, казалось бы, успешной загрузке, как указано выше.
Не удалось инициализировать контекст пружины для плагина MyTeamCityPlugin.Ошибка создания компонента с именем 'simpleRunnerRunType': не удалось создать экземпляр компонента.
Кто-нибудь может дать мне удар, который мне нужен для правильной работы?