Jar-связь с локальным файлом проекта - PullRequest
0 голосов
/ 12 января 2019

Итак, у меня есть загрузочный проект Spring, в котором я пытаюсь использовать шаблоны Velocity. Вещи, связанные с шаблоном Velocity, добавляются в виде jar.

Вот моя структура проекта:

 java-> esub -> db -> persistence-> Group.java
              -> domain -> (many domain files)
     -> org.iowa.rec -> many packages

Итак, я вызываю свой код из jar примерно так:

     RecordedMessage message = new RecordedMessage (PropertyLoader.getInstance());
    message.sendMessage(userProfileDO, group);

«Группа», которую я передаю, является локальной для моего проекта. Когда я пытаюсь запустить мое приложение, оно жалуется на:

    java.lang.LinkageError: loader constraint violation: loader (instance of sun/misc/Launcher$AppClassLoader) previously initiated loading for a different type with name "esub/db/persistence/Group"

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

Я попытался предоставить поле для jar, но потом я жаловался на дополнительные файлы.

Структура банки:

  sub -> *.vm(all vm files)
      -> esub -> mail -> (some java files) 

1 Ответ

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

В ходе дальнейших исследований я обнаружил, что это случай циклической зависимости. Перед созданием этого jar нам нужно иметь классы снизу в качестве зависимости:

  java-> esub -> db -> persistence-> Group.java
          -> domain -> (many domain files)

И затем, когда мы создадим банку после зависимости, мы можем использовать ее в TestProject, добавив его в качестве зависимости, и тогда он не будет жаловаться на файл. Это будет циклическая зависимость и крайне не рекомендуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...