Как конвертировать файловый разделитель в Maven - PullRequest
9 голосов
/ 06 октября 2010

У меня есть свойство, определенное так:

<properties>
    <main.basedir>${project.parent.basedir}</main.basedir>
</properties>

Поскольку я использую Windows в качестве ОС, она содержит обратную косую черту. Я хочу добавить этот путь к домену glassfish в качестве опции JVM (используя плагин glassfish maven). Проблема в том, что asadmin может использовать только косую черту в качестве разделителя, и все мои обратные слеши продолжают исчезать. Как определить свойство с точно таким же содержимым с косой чертой?

Ответы [ 2 ]

12 голосов
/ 06 октября 2010

Я не думаю, что есть непрограммный способ сделать это. Поэтому я предлагаю отличную однострочную строку с плагином Maven GMaven (GMaven обычно является самым простым способом встраивания программного кода в pom):

<plugin>
    <groupId>org.codehaus.gmaven</groupId>
    <artifactId>gmaven-plugin</artifactId>
    <executions>
        <execution>
            <id>setproperty</id>
            <phase>validate</phase>
            <goals>
                <goal>execute</goal>
            </goals>
            <configuration>
                <source>
pom.properties['main.basedir']=project.parent.basedir.absolutePath.replace('\\','/');
                </source>
            </configuration>
        </execution>
    </executions>
</plugin>
3 голосов
/ 20 января 2014

Просто обновление ответа Шона, мне пришлось внести небольшие изменения, чтобы адаптировать его к последней версии плагина Groovy Maven:

<plugin>
          <groupId>org.codehaus.gmaven</groupId>
          <artifactId>groovy-maven-plugin</artifactId>
          <dependencies>
            <dependency>
              <groupId>org.codehaus.groovy</groupId>
              <artifactId>groovy-all</artifactId>
              <version>2.0.1</version>
            </dependency>
          </dependencies>
          <executions>
                <execution>
                    <id>setproperty</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>execute</goal>
                    </goals>
                    <configuration>
                        <source>
        project.properties['basedir']=project.parent.basedir.absolutePath.replace('\\','/');
                        </source>
                    </configuration>
                </execution>
            </executions>
        </plugin>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...