Maven - специальные символы в имени свойства внутри пом - PullRequest
1 голос
/ 14 декабря 2011

Я использую плагин maven-properties-для записи своих свойств в файл, чтобы они могли использоваться сторонним приложением.

Я бы хотел включить в свойство специальный символ '$'name.

Например:

<properties>
 <a$Boolean>SOMETHING</a$Boolean>
...

Мне не удалось найти escape-символ.

Буду признателен за решение.

Спасибо, Ика.

Ответы [ 3 ]

2 голосов
/ 14 декабря 2011

$ является escape-символом для $.

Просто введите его дважды, например,

<properties>
  <prop-with-dollar>Prop-with-$$</prop-with-dollar>
</properties>

значение prop-with-dollar будет Prop-with-$

РЕДАКТИРОВАТЬ

После более внимательного прочтения понял, что вопрос действительно о $ в имени свойства.

Он не поддерживается в Maven.Что не является необоснованным.Многие языки поддерживают только ограниченный набор символов для имен переменных.Например, в Java $!<>- и многие другие символы не могут появляться в имени переменной.

1 голос
/ 18 декабря 2012

Может работать на вас, стоит попробовать это:

<project>
    <properties>
         <a\u0024Boolean>SOMETHING</a\u0024Boolean>
    </properties>
    <!--...-->
</project>

Я добавляю ту же проблему, когда хочу отфильтровать мой log4j.properties файл, разрешив ключ '$ {log4j.dir}' со значением свойства pom '$ {user.home}' .

Мне не помогли ни взлом $$ {key}, ни взлом $ {dollar} {key}. В конце концов мне удалось сделать это, используя нотацию HEXA для $ char в свойстве pom.

<project>
    <properties>
    <log4j.dir>\u0024{user.home}</log4j.dir>
    </properties>
    <!--...-->
</project>

Удачи!

0 голосов
/ 18 декабря 2011

В конце концов я использовал плагин maven replacer , написав «DOLAR» в каждом месте, где мне был нужен знак доллара, а затем заменив все вхождения «DOLAR» на «$». Вот пример кода:

<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>properties-maven-plugin</artifactId>
        <version>1.0-alpha-2</version>
        <executions>
          <execution>
            <id>Generating varfile for the install4j</id>
            <phase>generate-resources</phase>
            <goals>
              <goal>write-active-profile-properties</goal>
            </goals>
            <configuration>
              <outputFile>C:\Dev\out.varfile</outputFile>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>com.google.code.maven-replacer-plugin</groupId>
        <artifactId>maven-replacer-plugin</artifactId>
        <version>1.4.0</version>
        <executions>
          <execution>
            <id>Replacing the DOLAR sign with real dollar sign in varfile</id>
            <phase>process-resources</phase>
            <goals>
              <goal>replace</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <basedir>C:\Dev\</basedir>
          <file>out.varfile</file>
          <replacements>
            <replacement>
              <token>DOLAR</token>
              <value>\$$</value>
            </replacement>
          </replacements>
        </configuration>
      </plugin>
...