Як налагодити головну мету за допомогою ідеї intellij?


100

Чи можете ви налагодити головний гол за допомогою Intellij IDEA? Я знаю, що можу клацнути правою кнопкою миші та запустити налагодження . Однак плагін maven не відображається в моєму списку Зовнішніх бібліотек , тому я не можу зайти в код і встановити точку розриву. Таким чином, налагодження проходить через цілі, не зупиняючись, як це робить Run .

Я використовую OS X 10.8 та IDEA 12.0.2.

EDIT: Мета

Я написав спеціальний specRunner для https://github.com/searls/jasmine-maven-plugin - Однак $ specs $ залишається порожнім. Тому я намагаюся побачити, які файли завантажуються насправді.


2
налагодити головний гол ? що це за головна мета ? чого ти хочеш досягти? і яка ваша реальна проблема?
Алонсо Домінгуес

Під метром Maven я маю на увазі жасмін: тест, або жасмін: bdd. Наскільки я бачив, кожен Mojo повинен реалізувати метод Execute (), який я хотів би налагодити. Однак, оскільки у мене немає доступу до банку від IDEA, я не можу встановити точку розриву.
rweng

Відповіді:


190

Зрозумів це:

  1. з командного рядка запустіть команду maven target, mvnDebugа не mvn. НапрmvnDebug clean
  2. Відкрийте джерело плагіна Maven, який ви хочете налагодити в IntelliJ, і встановіть точку розриву
  3. В IDEA додайте Remoteконфігурацію.
    1. У розділі Налаштування встановіть транспорт: Socket, режим налагодження: Attach, Host: localhost, Port: 8000 (порт за замовчуванням mvnDebug).
  4. Запустіть конфігурацію в режимі налагодження. Він повинен підключитися до mvnDebug jvm, що очікує.

2
Як ви відкриєте джерело плагіна Maven в Intellij?
CorayThan

Я думаю, що я клонував його з github у правильній версії. Решта сталася автоматично.
rweng

3
Що робити, якщо я хочу запустити тести за допомогою mvn test -Dtest=com.example.MyTest(мій тестовий випадок виходить з ладу лише при запуску за допомогою Maven)
Точки перерв

2
Знайдено: У stackoverflow.com/q/6573289/1143126 це, в основному, запитання про запитання
RobertG

В Зокрема, ось як налагоджувати Maven мети з безпомилковим: stackoverflow.com/a/8339155/929708
JJ Brown

40

Дуже легко. Я використовую Intellj Idea 15.0.4

  1. Встановіть точку перерви у своєму плагіні Maven
  2. У тезі "Maven Projects" перейдіть до проекту, який використовує ваш плагін Maven.
  3. У «Плагінах» знайдіть свій плагін і над ціллю клацніть правою кнопкою миші та налагоджуйте

Ось скріншот:

скріншот


1
Хоча ця відповідь має негативну оцінку, вона допомогла мені виправити проблему (як налагодити проект на базі Maven в IntelliJ), і коли "Гуглінг" випустив цю проблему, він привів мене до цієї сторінки.
gbmhunter

Дякую, сер, ваша відповідь допомогла мені зрозуміти, як автоматично використовувати плагін Maven під час запуску в ідеї
Анатолій Якимчук

Це насправді дуже гарна відповідь. Для мене, безумовно, простіше і простіше зробити це таким чином, ніж встановити віддалену налагодження (як це запропоновано у прийнятій відповіді). Не впевнений, чому іншого прийняли. Можливо, це не спрацювало б із ситуацією, описаною у питанні, але якби напевно спрацювало для мене, тож дякую!
Чанандлер Бонг

2
"Встановити точку перерви у своєму плагін Maven" Я не впевнений, що це насправді означає? Чи це інше, ніж поставити точку перерви в самому класі java?
Амальговінус

"Встановити точку розриву у своєму Maven плагіні" означає встановити точку розриву у вашому класі Maven plugin
gorums

17

Старе питання, але в мене була така ж потреба, і мені знадобився певний час, щоб змусити його працювати. Сподіваємось, хтось може допомогти.

Для тестової налагодження використовуйте:

mvn <goal> -Dmaven.surefire.debug 

або

mvn <goal> -Dmaven.failsafe.debug

Коли виконання зупиняється і слухає сокет за адресою 5005 (за замовчуванням), ви запускаєте налаштований віддалений налагоджувач.

Як його налаштувати:

Запустити -> Редагувати конфігурації -> Віддалений транспорт: сокет Режим налагодження: Приєднати порт: 5005 (за замовчуванням)

-> Зберегти.


10

Найпростіший спосіб налагодження Maven target ТІЛЬКИ в IntelliJ - це створити звичайну мету Maven і на вкладці runner передати ці параметри VM:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000

Де 8000 - номер порту для віддаленої налагодження.

Конфігурація мети Maven

Потім створіть нову віддалену конфігурацію з портом 8000. Запустіть цю конфігурацію після запуску Maven target.

Конфігурація віддаленої налагодження


8

Я думаю, що найпростіше рішення - тимчасово додати плагін Maven як залежність. Як тільки це буде зроблено, IntelliJ буде ставитися до цього так само, як і до будь-якої іншої залежності, і ви можете встановити точки перелому звичайним способом.


1
вставте це, а замість mvn використовуйте: mvnDebug ..., а потім створіть віддалений відладчик налагодження в intellij на порту 8000
user85155

3

Або ви можете звернутися до вищевказаної відповіді, або просто додайте цей плагін у pom.xml

           <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <configuration>
            <jvmArguments>
            -Xdebug - 
            Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
            </jvmArguments>
            </configuration>
        </plugin>

І запустити Maven Goal mvnзамість mvnDebug. Напрmvn spring-boot:run

В IDEA додайте віддалену конфігурацію. У розділі Налаштування встановіть транспорт: Socket, режим налагодження: Attach, Host: localhost, Port: 8000 (порт за замовчуванням mvnDebug).

Запускайте як налагодження в IDEA, коли ви хочете налагоджувати код.


3
У запитанні не згадується Весна, ця відповідь стосується весни
Amalgovinus

1

Оскільки ви працюєте з Intellij, там вже є вбудований налагоджувач, і вам не потрібно обов'язково використовувати mvnDebug, який є інструментом командного рядка. Перегляньте цей підручник: Як налагодити програми Maven в Intellij IDEA .

Підручник використовує плагін Maven Exec і дозволяє налагоджувати програму без необхідності використання командного рядка або MvnDebug. Думаючи, що це може бути корисним тут.


2
Підручник охоплює лише налагодження exec:java. Однак якщо вам потрібно надати додаткові аргументи для JVM, вам потрібно використовувати exec:exec(Див. Stackoverflow.com/questions/7305090/… ), який не можна налагодити таким чином.
мирелон

0

@ Відповідь Петера Сзанто працює на мене, але мені не подобається псувати свій вихідний код.

І я не можу MvnDebugтак працювати.

Тому я спробую іншим способом - додати джерело плагінів як модуль IDEA .

Ось детальний крок:

  1. Клоніруйте джерело плагінів як незалежний проект.

  2. У своєму проекті перейдіть до File -> New -> Module from Exist Sourcesта додайте проект плагінів, який ви клонуєте в кроці 1.

  3. Тепер ви можете відкрити вихідний код плагіна та встановити деяку точку розриву.

  4. Виконайте свою головну ціль у режимі налагодження, вона повинна зупинитися на точці перерви.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.