Отладка исходного кода сгенерированного кода в IntelliJ

Я хочу выполнить отладку кода, сгенерированного Dagger в IntelliJ. Исходные файлы, сгенерированные Dagger, помещаются в /target/generated-test-sources/test-annotations и /target/generated-sources/annotations.

Я просмотрел диалоговое окно Run/Debug Configurations и не увидел ничего очевидного. Я также проверил настройки модуля, и обе они указаны как исходные папки, так что IntelliJ определенно знает, что они являются исходными, но по какой-то причине не столкнется ни с какими точками останова, которые я установил в сгенерированном коде.


person Christopher Perry    schedule 14.03.2014    source источник


Ответы (3)


Для IntelliJ 13.1.5:

Если /target/generated-sources/annotations помечен как сгенерированный исходный корень, IntelliJ никогда не запускает точки останова. Если /target/generated-sources/annotations не помечен как сгенерированный корень источника, IntelliJ активирует точки останова, но не перейдет к связанному источнику.

  1. Снимите отметку /target/generated-sources/annotations как корень сгенерированных источников
  2. Установите точки останова в сгенерированном источнике
  3. Запустите свой код, чтобы активировать точку останова
  4. Пометить /target/generated-sources/annotations как корень сгенерированных источников

Теперь IntelliJ ведет себя так, как ожидалось. Вам, вероятно, потребуется удалить /target/generated-sources/annotations после того, как вы закончите, чтобы точки останова снова запускались.

Я создал ошибку IntelliJ для этой проблемы. Пожалуйста, проголосуйте за это.

person Heath Borders    schedule 01.10.2014

Все, что вам нужно, это исходные файлы где-то, доступные для IDEA, тогда вы сможете отлаживать. Убедитесь, что папки, содержащие файлы, включены в настройки структуры проекта, тогда вы сможете открывать файлы с помощью ctrl+n и устанавливать точки останова.

person Tobb    schedule 14.03.2014
comment
Они уже указаны как исходные папки в настройках модуля. - person Christopher Perry; 15.03.2014
comment
Вы можете открыть их? Возможно, вам нужно пометить папки, в которых они находятся, как исходный корень. Это можно сделать, щелкнув папку правой кнопкой мыши и выбрав Отметить как. Точки останова обозначены v или x? - person Tobb; 15.03.2014

Мой рабочий обходной путь:

  • разверните сгенерированный артефакт (кувшин, война, ухо, ...)
  • открыть (и декомпилировать) файл класса
  • поставить здесь точку останова

В этот момент IntelliJ запускает точки останова, как и ожидалось.

person Antonio Petricca    schedule 18.02.2020