4

https://developer.atlassian.com/bamboodev/bamboo-tasks-api/executing-external-processes-using-processservice Я хотел бы вызвать некоторую команду, используя компонент ProcessService. Впрыск, как описано в ссылке, не работает. Я проверил источник нескольких других плагинов в Bitbucket, но каждый использует концепцию, как описано в ссылке.Bamboo ProcessService bean не существует?

Мой класс:

import com.atlassian.bamboo.process.ProcessService; 

public class CheckTask implements TaskType { 
    private final ProcessService processService; 
    public CheckTask(@NotNull final ProcessService processService) { 
     this.processService = processService; 
    } 

Однако бамбук не находит ProcessService боб и завершаться следующее:

(org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка создания боб с именем 'bamboo.tasks.CheckTask': неудовлетворенная зависимость , выраженная через аргумент конструктора с индексом 0 типа [com.atlassian.bamboo.process.ProcessService]:: Нет квалификационного компонента тип [com.atlassian.bamboo.process.ProcessService], найденный для зависимости: ожидается как минимум 1 бит, который квалифицируется как autowire кандидат на эту зависимость. Аннотации зависимостей: {}; вложенная исключение org.springframework.beans.factory.NoSuchBeanDefinitionException: Нет квалификационных рожкового типа [com.atlassian.bamboo.process.ProcessService] найдено для зависимостей: ожидаются, по крайней мере 1 боб, который квалифицируется как autowire кандидата на этом зависимость. Аннотации зависимостей: {})

Я что-то упустил? версия Bamboo: 5.13.0 AMPS версия: 6.2.6

ответ

2

В растворе конец был довольно прост, никакие официальные документы не обсуждали решение. Надеюсь, вам это поможет.

Наконец, благодаря этой статье я сделал работу: https://answers.atlassian.com/questions/33141765/testcollationservice-not-injected-into-tasktype-constructor-on-sdk-bamboo

import com.atlassian.bamboo.process.ProcessService; 
import com.atlassian.plugin.spring.scanner.annotation.component.Scanned; 
import com.atlassian.plugin.spring.scanner.annotation.imports.ComponentImport; 

@Scanned 
public class CheckTask implements TaskType { 

    @ComponentImport 
    private final ProcessService processService; 

    public CheckTask(@NotNull final ProcessService processService) { 
     this.processService = processService; 
    } 

Остальная часть проекта была basicaly по умолчанию, генерируемые с помощью атласа-создания-бамбуковой-плагин.

+0

Обратите внимание, что @Autowired умышленно исключен. Нет необходимости в этом. Просто чтобы оправдать мой комментарий под другим ответом. – Kousalik

1

Попробуйте добавить в своем Atlassian-plugin.xml следующую строку

<component-import key="processService" 
     interface="com.atlassian.bamboo.process.ProcessService"/> 

Это должно помочь вам

+1

Благодарим за помощь. Плагин теперь, к сожалению, терпит неудачу: atlassian-plugin.xml содержит определение компонента-import. Это запрещено, если установлен Atlassian-Plugin-Key. Элемент Atlassian-Plugin-Key был создан плагином атласа-создания-бамбука. – Kousalik

+1

Atlassian недавно обновила способ импорта компонентов. Итак, компонент-импот - это старый способ, но есть новый способ с помощью весеннего сканера (http://www.j-tricks.com/tutorials/atlassian-spring-scanner-and-nosuchbeandefinitionexception), который, к сожалению, не работает Что ж. Попробуйте найти что-то в своем pom.xml о Atlassian-Plugin-Key и удалите его или следуйте документации по ссылке о новом способе импорта компонентов – Solorad

+0

Спасибо, есть также 2 ссылки, следующие за ошибкой. Я просто читаю. Вернусь, если что-нибудь придумаю. – Kousalik

Смежные вопросы