У меня есть настраиваемое свойство line.ending , которое я использовал на этапе сборки здания моего проекта, чтобы указать тип окончания строки в файлах свойств моего приложения.Для этого я создал два профиля LF_DOS и LF_UNIX , чтобы при запуске:
mvn install
или
mvn install -P LF_DOS
line.ending равно 'dos', и когда я запускаю:
mvn install -P LF_UNIX
line.ending равно 'unix'.
Моя первая попыткасделать это было просто:
<profile>
<id>LF_UNIX</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<line.ending>unix</line.ending>
</properties>
</profile>
<profile>
<id>LF_DOS</id>
<activation>
<property>
<name>!line.ending</name>
</property>
</activation>
<properties>
<line.ending>dos</line.ending>
</properties>
</profile>
К сожалению, это всегда давало мне line.ending = dos , независимо от того, установлен LF_UNIX или нет.Странно ... Но, что меня больше смущает, так это то, что я решил проблему, просто изменив порядок объявления профиля, например:
<profile>
<id>LF_DOS</id>
<activation>
<property>
<name>!line.ending</name>
</property>
</activation>
<properties>
<line.ending>dos</line.ending>
</properties>
</profile>
<profile>
<id>LF_UNIX</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<properties>
<line.ending>unix</line.ending>
</properties>
</profile>
Это работает точно так, как я хочу.
Мои вопросы: это ошибка?Или это что-то, что нужно знать о профилях Maven, своего рода ограничение, которое делает объявление заказа профилей особенно важным в таком случае?