Изменить исходный каталог в профиле maven
Я хочу использовать другой исходный каталог для определенного профиля maven, однако, когда я пытаюсь указать его в определении профиля, я получаю эту ошибку:
Unrecognised tag: 'sourceDirectory' (position: START_TAG seen ...<build>\r\n\t\t\t\t<sourceDirectory>... )
Определение в pom выглядит следующим образом:
<profile>
<id>development</id>
<build>
<sourceDirectory>${project.build.directory}/new-src</sourceDirectory>
.
.
.
</build>
</profile>
То, что я пытаюсь сделать, это обработать исходные файлы до его компиляции, если и только если этот профиль активен. Мой процесс изменит исходные файлы на лету, выбросит измененные источники в каталог "new-src" и скомпилирует этот каталог, как если бы это был обычный "src/main/java". Все остальное на жизненном цикле должно вести себя нормально. Если этот подход ошибочен, может ли кто-нибудь указать мне правильное направление?
Ответы
Ответ 1
В соответствии с документацией вы можете изменить только несколько параметров <build>
в профиле, а <sourceDirectory>
не является одним из них.
Я бы сконфигурировал основной <build>
для получения источников из пути, определенного некоторым свойством (например, src.dir
), установите для этого свойства значение src/main/java
и переопределите его в настраиваемом профиле:
<project>
...
<properties>
<src.dir>src/main/java</src.dir>
</properties>
<build>
<sourceDirectory>${src.dir}</sourceDirectory>
...
</build>
<profiles>
<profile>
<id>development</id>
<properties>
<src.dir>${project.build.directory}/new-src</src.dir>
</properties>
</profile>
</profiles>
</project>
Ответ 2
См. модель Maven, не разрешено определять sourceDirectory
в профиле. Единственное, что вы можете сделать, это указать исходный каталог в конфигурации плагина, если он доступен.