【发布时间】:2017-05-16 15:50:21
【问题描述】:
我根本不是 Java 开发人员。但我预计它不应该那么难。我正在尝试为 Bitbucket Server 放置特定插件,该插件将触发 postReceive 并检查特定标签,然后执行基本操作(通过 REST 发布已提交文件的内容)。下面的简化代码示例,它不起作用。
public class ReleaseNotesHook implements AsyncPostReceiveRepositoryHook, RepositorySettingsValidator
{
private static final PageRequestImpl PAGE_REQUEST = new PageRequestImpl(0, 100);
private RefService refService;
public ReleaseNotesHook(RefService refService){
this.refService = refService;
}
public void postReceive(RepositoryHookContext context, Collection<RefChange> refChanges)
{
String url = context.getSettings().getString("url");
for (RefChange refCh : refChanges) {
boolean isAdd = (refCh.getType() == RefChangeType.ADD);
boolean isTag = (refCh.getRef().getId().contains("tags"));
if (isAdd && isTag) {
Repository repo = context.getRepository();
RepositoryTagsRequest tagRequest = new RepositoryTagsRequest.Builder(repo).build();
Page<Tag> tags = refService.getTags(tagRequest, PAGE_REQUEST);
performSomething(tags);
}
}
}
} //class
当我启动 atlas-debug 时,它可以正常构建项目并启动 Bitbucket Server,但无法插入钩子并出现错误:
[INFO] [talledLocalContainer] org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为 'com.atlassian.bitbucket.plugin.releasenotes.hook.ReleaseNotesHook' 的 bean 时出错:通过索引为 0 的构造函数参数表示的不满足依赖项类型 [com.atlassian.bitbucket.repository.RefService]: : 没有为依赖项找到类型为 [com.atlassian.bitbucket.repository.RefService] 的合格 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注解:{};嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有为依赖项找到 [com.atlassian.bitbucket.repository.RefService] 类型的合格 bean:预计至少有 1 个 bean 有资格作为此依赖项的自动装配候选者。依赖注释:{}
我这个插件的主要资源是:
- https://developer.atlassian.com/blog/2015/01/beer-o-clock-stash-plugin-tutorial/
- https://developer.atlassian.com/static/javadoc/bitbucket-server/4.6.2/api/reference/com/atlassian/bitbucket/repository
- https://bitbucket.org/atlassian/stash-example-hook-protect-ref/commits/a38e6118b0b1ac1b9b73959e32325271d3d3937a?at=update-example-for-bitbucket-rebrand#chg-src/main/java/com/atlassian/bitbucket/server/repository/hook/ref/RefValidator.java
【问题讨论】:
标签: java spring dependency-injection bitbucket hook