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

Как переименовать maven pom artifactId с использованием рефакторинга IntelliJ?

Я использую IntelliJ 13 и имею настройку Java-проекта с его модулями на основе проектов maven.

Существует проект maven, который я должен переименовать, поэтому мне придется изменить его значение свойства artifactId в файле pom.

Если я сделаю это вручную, мне придется найти все его вхождения и изменить их вручную (например: где он включен как модуль и где он используется как зависимость).

Так как IntelliJ предоставляет много методов рефакторинга, я думал, что refactor- > rename на свойстве pom artifactId будет поддерживаться, но, похоже, это не так.

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

IMO, IntelliJ должен иметь возможность обнаруживать, где pom включен в качестве модуля, а какие другие модули используют его как зависимость - кто-нибудь знает об автоматическом способе сделать это - или я чего-то здесь не вижу?

4b9b3361

Ответ 1

Replace in Path (Ctrl + Shift + R по умолчанию) действие с текстом для поиска <artifactId>OLD-ARTIFACT-ID</artifactId>, а текст для замены <artifactId>NEW-ARTIFACT-ID</artifactId> будет выполнять большую часть работы с минимальным количеством ложных срабатываний, особенно если вы дополнительно настроите правильный фильтр имени файла (pom.xml, очевидно).

В деталях приведена полная последовательность шагов для переименования модуля на основе maven (при условии, что имя модуля соответствует имени каталога, в котором находится модуль):

  • Прокомментируйте соответствующие строки <module>OLD-ARTIFACT-ID</module> в родительских/агрегаторных помах, а затем разрешите IDEA повторно импортировать проект и позволить ему удалять исключенные модули из проекта. Лучше также удалить оставшиеся файлы .iml.
  • Выполните поиск и замените с <artifactId>OLD-ARTIFACT-ID</artifactId> на <artifactId>NEW-ARTIFACT-ID</artifactId>, чтобы переименовать данный модуль и исправить все ссылки на него.
  • Выполните поиск и замените с <module>OLD-ARTIFACT-ID</module> на <module>NEW-ARTIFACT-ID</module>, чтобы исправить все ссылки на агрегацию.
  • Переименуйте каталог модуля.
  • Раскомментируйте соответствующие строки <module>NEW-ARTIFACT-ID</module> в родительских/агрегатных POM файлах, а затем разрешите IDEA повторно импортировать проект.

Если вы чувствуете, что IDEA пропускает некоторые полезные функции, вы должны создать запрос функции на http://youtrack.jetbrains.com/. В этом конкретном случае проголосуйте за IDEA-94223, IDEA-72181 и IDEA-104344.