Intellij не может найти изменения, сделанные в модулях зависимостей - PullRequest
0 голосов
/ 12 октября 2018

У меня есть проект Maven, который зависит от других проектов Maven.Мне удалось импортировать эти модули зависимостей через «структуру проекта» в мой проект.Умеет чистить установку и запускать программу.Также в моем основном проекте, если бы я «щелкнул командой» по файлу, расположенному в зависимых модулях, он бы хорошо пошел в этот файл .java (вместо заголовка в файл .class).

Но изменения, сделанные в проекте зависимостей, не отражаются при запуске программы.Перестройка или новая установка mvn не имеют никакого значения.

Например, я попытался просто добавить объявление новой переменной в классе, расположенном в модулях зависимости.Эта переменная даже не существует, когда я запускаю программу и проверяю ее с помощью отладки.

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

В строке 112 в классе com.name не найден исполняемый код ....

Информация, которая может помочь.

Этот проект работал нормально, без добавления этих зависимостей, потому что они существовали в виде jar-файлов как часть этого проекта.Поскольку мне нужно было внести изменения в эти зависимости, я удалил эти файлы jar «через структуру проекта» и вместо этого импортировал эти зависимости в виде модулей «через структуру проекта».

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

Еще одна проблема, которая всплыла, и снова я не понимаю.Был параметр, который не работал в моем основном проекте (компиляция не удалась), пока я не изменил свою зависимость.Теперь он работает нормально с точки зрения компиляции.Но когда я запускаю его, при отладке я получаю правильное значение параметра, но после следующего шага он просто переходит на InvocationTargetException .Добавлен короткий фрагмент кода ниже.

// Under Main Project
someMethod(Doable do){
    // do something
}

DoSomething doSomething = null;
someMethod(doSomething); // compilation error unless I implement Doable

// Under dependency
// implement Doable is the change which compiles now
class DoSomething implements Doable{ 
    //implement something
}

Добавлена ​​структура проекта для справки.Пожалуйста посоветуй.Спасибо.

MyMainProject
    mvn_structure
    pom.xml
MainDependency
    SubDependency1 
        mvn_structure
        pom.xml
    SubDependency2
        mvn_structure
        pom.xml
    SubDependency3
        mvn_structure
        pom.xml
    pom.xml

1 Ответ

0 голосов
/ 12 октября 2018

Ваш проект опирается на файлы зависимостей в репозитории Maven, а не на исходные коды зависимостей (другие проекты).Поэтому, чтобы ваши изменения в другом проекте были доступны вашему проекту, вам нужно сначала создать другие проекты, чтобы их банки в репо обновлялись.Только тогда эти изменения будут доступны для вашего проекта.

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