Подтвердить что ты не робот

Как отлаживать приложение Play с помощью активатора?

Я знаю, что для классической платформы Play это play debug ~run. Я попытался запустить activator debug ~run, но я получаю следующую ошибку:

[error] Not a valid command: debug (similar: idea)
[error] Not a valid project ID: debug
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: debug (similar: debianSign, node)
[error] debug
[error]      ^

Что я делаю неправильно?

4b9b3361

Ответ 1

Если вы просто делаете activator ~run, то вы должны иметь возможность передавать порт отладочного порта JVM с помощью:

./activator -jvm-debug <port> ~run

Это может не делать то же самое, что и воспроизведение, но здесь аргументы, добавляемые в командную строку:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<port>

С: https://github.com/typesafehub/activator/blob/master/dist/src/templates/activator#L107

Я успешно присоединился к этому процессу в своей среде IDE.

Если вы работаете в Windows, автоматическая настройка немного отличается. С помощью последнего активатора вы можете сделать следующее:

  • Откройте %UserProfile%\.activator\activatorconfig.txt (UserProfile отличается в зависимости от установки Windows. Mine имеет значение C:\Documents and Settings\jsuereth для одной установки и C:\Users\jsuereth для другого). В файле указано следующее: -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<PUT YOUR PORT HERE>
  • Вы можете установить свойство JAVA_OPTS в командной строке перед запуском активатора, например. set "JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<port>"

Надеюсь, что это поможет!

Ответ 2

У меня есть windows7 и активатор 1.2.12, и ответы выше не работают для меня. Вместо этого я использовал параметр "-jvm-debug" команды "activator.bat" исходной папки проекта, и он сработал. Вот так:

C:\Projects\MyProject>activator -jvm-debug
Listening for transport dt_socket at address: 9999
[info] Loading global plugins from C:\Users\MyAccount\.sbt\0.13\plugins
[info] Loading project definition from C:\Projects\MyProject\project
[info] Set current project to MyProject (in build file:/C:/Projects/MyProject/)

Затем внутри активатора (sbt) я использовал команду "run". Вот так:

[MyProject] $ run

--- (Running the application, auto-reloading is enabled) ---

[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:9000
'force' enabled

(Server started, use Ctrl+D to stop and go back to the console...)

Running "watch" task

Чтобы отладить от eclipse, щелкните правой кнопкой мыши проект и выберите "Debug As, Debug Configurations". В диалоговом окне "Конфигурации отладки" щелкните правой кнопкой мыши "Удаленное приложение Java" и выберите "Создать". Измените порт на 9999 и нажмите "Применить". С этого момента вы можете нажать "Отладка" для подключения к запущенному приложению.

Ответ 3

Еще одна вещь, которую я обнаружил:

fork in run := false

fork in Test := false

в "build.sbt".

Это позволяет вам отлаживать ваши тесты не только самим приложением.

Ответ 4

С картой воспроизведения 2.x:

Внутри каталога проекта запустите команду активатора, например

активатор -jvm-debug 9999 run

Как только это будет сделано, отлаживайте проект как приложение Remote Java в своей среде IDE, чтобы подключить его к процессу активации.

Как только это будет сделано, вы сможете сломать код в любом месте.:)

Ответ 5

Я попробовал решение Readren, но с использованием сообщества сообщества IntelliJ IDEA (поэтому нет встроенной поддержки воспроизведения) вместо Eclipse.

Это в основном способ документирования работы с новыми файлами Activafe Activator (я использую 1.3.2). Для меня приложение запускалось, и отладчик IntelliJ выглядел так, как будто он подключался, но он не попадал ни в какие точки останова (также точки останова в IntelliJ не имели метки, указывающей, что они не собираются попадать).

Я попытался изменить настройку DEBUG_OPTS в файле activator.bat, чтобы использовать форму -agentlib аргументов командной строки jdwp, и это, похоже, исправить ее для меня.

rem set DEBUG_OPTS=-Xdebug -Xrunjdwp:tnsport=dt_socket,server=y,suspend=n,address=!JPDA_PORT!
set DEBUG_OPTS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=9999

Вероятно, я должен помещать это в файл activatorconfig.txt где-то, но потратил около 4 часов, пытаясь заставить это работать - так что это для меня сейчас достаточно...

Я использую следующую JVM, если это имеет значение:

версия java "1.7.0_75" Java (TM) SE Runtime Environment (сборка 1.7.0_75-b13) Java HotSpot (TM) 64-разрядная серверная VM (сборка 24.75-b04, смешанный режим)