Косая черта в имени свойства в pom.xml
У меня есть проблема, которую я не могу решить.
Я хочу собрать свой eclipse cdo-сервер с Tycho/Maven, а также хочу иметь возможность запустить cdo-server.product из eclipse.
Сервер cdo, который он настроил так: http://wiki.eclipse.org/Setting_up_a_CDO_Server
Нет, это моя проблема: если я выберу:
-Dnet4j.config="${resource_loc:/cdo.server/config}"
Я могу запустить его из затмения, но если я хочу запустить встроенный CDO-Server.app, он не может найти эту папку.
Если я выберу:
-Dnet4j.config="../../../../../../../../../../cdo.server/config"
Я могу запустить встроенный CDO-Server.app, но не могу запустить его из затмения.
Это все логично, но теперь я решил сделать ${resource_loc:/cdo.server/config} в качестве свойства в моем файле pom.xml. Но если я напишу это так:
<properties>
<resource_loc:/cdo.server/config>../../../../../../../../../../cdo.server/config</resource_loc:/cdo.server/config>
</properties>
Я получаю исключение, что это не разбирается POM из-за косой черты в теге.
Если я хочу сделать это так:
<properties>
<resource_loc:>
<cdo.server>
<config>../../../../../../../../../../cdo.server/config</config>
</cdo.server>
</resource_loc:>
</properties>
Это также не разбираемый POM. Есть ли возможность использовать ${resource_loc:/cdo.server/config} в качестве свойства?
2 ответа
Проблема в определении вашего свойства - это косые черты в имени свойства.
Следующее не удастся проанализировать pom.xml:
<resource_loc:/cdo.server/config>yx</resource_loc:/cdo.server/config>
или WhatEverValue
Это также не будет работать, если вы попытаетесь использовать / в качестве замены косой черты в имени сущности.
Вы можете попробовать http://mojo.codehaus.org/properties-maven-plugin/read-project-properties-mojo.html вместо того, чтобы читать свойства из отдельного файла, чтобы обойти ограничение правильной формы XML в pom.xml.