Je suis à jouer avec un TeamCity installation et le développement d'un plugin qui s'étend d'un BuildServerAdapter. Quand je le paquet et l'installer sur le serveur, teamcity-serveur.le journal contient des entrées pour mon plugin:
- trouvé lors de la numérisation de plugins (.BuildServer\plugins) dossier
- l'inscription de l'agent de plugin de plugin serveur
- charge dans le chargeur de classe partagé
- est chargé
Le plugin est également indiqué sur la page des plugins dans l'administration de serveur.
Au-delà de ça...rien. J'ai mis dans divers journaux des états, à la fois via l'enregistreur de données et de Système.et je ne les vois pas. J'ai même ajouté une exception dans le constructeur, et je ne vois pas de preuve que ce soit dans les journaux système. Quand une génération se produit, il n'y a encore aucune preuve que mon code est appelé.
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");
}
...
Le zip que je copie .BuildServer\plugins
a la structure suivante:
- MyTeamCityPlugin.zip
- teamcity.plugin.xml
- serveur
- MyTeamCityPlugin.jar
- paquet de dossiers contenant des fichiers de classe
- META-INF
- build-server-plugin.xml
- Le MANIFESTE.MF
En regardant les autres plugins, ils utilisent la structure suivante, j'ai donc essayé.
- MyTeamCityPlugin.zip
- MyTeamCityPlugin
- teamcity.plugin.xml
- MyTeamCityPlugin.jar
- paquet de dossiers contenant des fichiers de classe
- META-INF
- build-server-plugin.xml
- Le MANIFESTE.MF
- MyTeamCityPlugin
Mon build-server-plugin.xml contient les éléments suivants:
<?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>
Je suis partie de la façon dont il depuis le teamcity-serveur.le journal indique qu'il sait sur le plugin, et n'est plus, déclenche une exception à essayer de le charger. Malheureusement, de ne pas commettre d'erreur n'est pas le même travail.
En utilisant les scripts ant à partir de l'exemple de plugin, j'obtiens l'erreur suivante, j'ai donc été à emballer les choses manuellement. Il en résulte apparemment réussie charge par ci-dessus.
Échec de l'initialisation du printemps contexte pour plugin MyTeamCityPlugin. Erreur lors de la création de haricots avec le nom "simpleRunnerRunType': instanciation de haricot a échoué.
Quelqu'un peut-il me donner le coup j'ai besoin d'obtenir ce fonctionne correctement?