Как настроить Maven (командная строка) и IDE для создания в разных папках? - PullRequest
0 голосов
/ 25 января 2019

Я часто переключаюсь между своей IDE (выполняю только модульные тесты для кода, над которым я работаю) и командной строкой (выполняю все модульные тесты).

Это вызывает проблемы: иногда,mvn clean терпит неудачу, потому что IDE строит код.Или я получаю странные ошибки в IDE по поводу пропущенных классов, потому что IDE читает файлы, которые были изменены Maven.

Кроме того, я не могу продолжать работать в IDE, почему Maven создает в фоновом режиме.

Как настроить мою IDE или Maven для использования разных папок сборки?

1 Ответ

0 голосов
/ 25 января 2019

Используйте профили и этот код в своем (родительском) POM:

<project>
  ...

  <build>
    <outputDirectory>${basedir}/${target.dir}/classes</outputDirectory>
    <testOutputDirectory>${basedir}/${target.dir}/test-classes</testOutputDirectory>
  </build>

  <properties>
    <target.dir>target</target.dir>
  </properties>

  <profiles>
    <profile>
      <id>ide-folders</id>
      <properties>
        <target.dir>target-ide</target.dir>
      </properties>
    </profile>
  </profiles>
  ...  

Сконфигурируйте проект в вашей IDE для включения профиля target-ide при сборке. Теперь Maven и IDE используют разные папки.

Кроме того, вы можете включить этот профиль в settings.xml и сделать папку target-ide по умолчанию. Таким образом, вам не придется изменять настройки многих проектов в вашей IDE. Он даже будет работать на вашем сервере сборки CI (он будет встраиваться в target-ide, но кого это волнует? И если вы достаточно заботитесь, вы можете включить профиль и там).

Примечание: это основано на публикации в блоге на jroller.com, которая не работает. В интернет-архиве есть копия: https://web.archive.org/web/20150527111413/http://www.jroller.com/eu/entry/configuring_separate_maven_output_folders

...