Ответ 1
Это решение немного взломано, но сработало для меня. Он включает указание новой переменной среды, присвоение ей значения -T3 и добавление этой переменной в сценарий запуска Maven.
Для Windows (Linux в паренсе):
- Откройте окно Переменные среды: Компьютер → Свойства → Расширенные настройки системы → Переменные среды
- Добавьте свойство MAVEN_CMD_LINE_OPTS с желаемым значением. В моем случае
-T 3
, поскольку я хочу, чтобы Maven использовал 3 потока для параллельного построения. Отредактируйте файл mvn.cmd (В Linux: файл mvn). Найдите часть, где фактически выполняется команда Java, строка начинается с% MAVEN_JAVA_EXE% (В Linux: обычно после строки, определяющей основной класс: org.codehaus.plexus.classworlds.launcher.Launcher)
Добавьте% MAVEN_CMD_LINE_OPTS% в конец строки (в Linux: $ MAVEN_CMD_LINE_OPTS)
Когда вы запустите mvn compile для проекта Maven, вы увидите следующую строку:
Использование реализации MultiThreadedBuilder с числом потоков 3
Преимущество в том, что пользователь может "переопределить" это значение. Таким образом, если пользователь выполняет компиляцию mvn -T4, то вместо 4 по умолчанию используются 4 потока.
Примечание:
- Я пробовал это на Maven 3.3.9, но концепция должна работать на любом Maven версия.
- Многопоточные сборки могут страдать от проблем, когда плагины особенно пользовательские плагины не безопасны для потоков. Так что используйте с осторожностью и рассмотрите возможность отключения этого как исправление в случае проблем.