Maven зависимость для загрузки файла JAR - PullRequest
0 голосов
/ 27 января 2019

Я надеюсь, что кто-то может дать мне несколько советов по этому вопросу, потому что Google не слишком мне помог.Я хочу скачать jar из Artifactory и запустить его из своего java-кода, но на этом простом шаге я столкнулся с некоторыми трудностями.

это зависимость maven, которую я не могу заставить работать

С этой зависимостью Maven знает groupId, artifactId и версию моего java-файла.Что касается поля Scope, я увидел, что оно может быть скомпилировано, предоставлено, во время выполнения, системой или тестом.

Этот файл JAR представляет другой модуль, это приложение, которое я хочу обработать из кода, яЯ не хочу никакого конкретного состояния для этого файла, когда я собираю проект, я просто хочу загрузить его и использовать, когда мне это нужно, но его нужно загружать в текущем проекте.Прямо сейчас, с этой зависимостью maven, файл jar будет загружен из Artifactory, когда я создаю проект, но в конце я получаю ошибку:

Причина: org.springframework.context.annotation.ConflictingBeanDefinitionException: указанное для аннотации имя компонента 'userManagerImpl' для класса компонента [com.cgm.user.impl.UserManagerImpl] конфликтует с существующим, несовместимым определением компонента с тем же именем и классом [com.cgm.authentication.impl.UserManagerImpl]

Итак, Весна не знает, что выбрать;Я думаю, что одним из решений будет переименование всех компонентов проекта, но я не могу себе этого позволить.

Есть предложения?

Большое спасибо!

1 Ответ

0 голосов
/ 27 января 2019

Что вы указываете, проблема в том, что у вас есть несколько бинов одного типа.

Вы можете использовать @ Qualifier вместе с @ Autowired .Фактически, Spring попросит вас явно выбрать компонент, если обнаружен неоднозначный тип компонента, и в этом случае вы должны предоставить квалификатор

. Например, в следующем случае необходимо указать квалификатор

 @Component
 @Qualifier("staff") 
 public Staff implements Person {}

 @Component
 @Qualifier("employee") 
 public Manager implements Person {}


 @Component
 public Payroll {

 private Person person;

  @Autowired
  public Payroll(@Qualifier("employee") Person person){
      this.person = person;
  }

}
* 1011.* Другой альтернативой является использование аннотации @ Qualifier в определении класса, если она является частью вашего проекта.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...