Присвоение одного имущества другому в Maven - PullRequest
2 голосов
/ 28 января 2010

Мой проект Maven имеет два свойства, которые используются при фильтрации файла конфигурации постоянства:

<database-url>jdbc:mysql://localhost/${database-name}?autoReconnect=true&amp;amp;useUnicode=true&amp;amp;characterEncoding=UTF-8&amp;amp;rewriteBatchedStatements=true&amp;amp;useServerPrepStmts=false&amp;amp;useCursorFetch=true</database-url>
<test-database-url>jdbc:mysql://localhost/${test-database-name}?autoReconnect=true&amp;amp;useUnicode=true&amp;amp;characterEncoding=UTF-8&amp;amp;rewriteBatchedStatements=true&amp;amp;useServerPrepStmts=false&amp;amp;useCursorFetch=true</test-database-url>

Свойства должны быть дважды кодированы в XML, поскольку сам файл конфигурации является документом XML, а Maven разрешает объекты XML во время фильтрации ресурсов.

Я бы хотел иметь возможность запускать свои тесты непосредственно из моей IDE, поэтому я создал профиль и установил одно свойство для другого.

<database-url>${test-database-url}</database-url>

Проблема в том, что Maven разрешает сущности в настройке свойства, а затем снова во время фильтрации файла конфигурации, что означает, что мой файл конфигурации является недействительным XML.

Есть ли способ установить одно свойство в другое без разрешения сущностей XML?

1 Ответ

2 голосов
/ 28 января 2010

Не прямой ответ, но ... почему бы вам не использовать разные значения для одного свойства в зависимости от профиля. Например, (по умолчанию) профиль разработки будет иметь:

<database.url>jdbc:mysql://localhost:3306/app_dev</database.url>

И тестовый профиль будет иметь:

<database.url>jdbc:mysql://localhost:3306/app_test</database.url>

И если это не то, что вам нужно, возможно, наличие единственного database.url свойства для URL-адреса и передача системного свойства, такого как -Ddatabase-name=app_xxx для имени, поможет.

Но я могу что-то упустить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...