2010-10-06 12 views
9

Mam właściwość zdefiniowaną następująco:Jak przekonwertować plik separator w Maven

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

Ponieważ używam Windows jako systemu operacyjnego, zawiera ukośników. Chcę dodać tę ścieżkę do domeny glassfish jako opcji JVM (używając wtyczki glassfish maven). Problem polega na tym, że asadmin może spożywać tylko ukośnik jako separator, a wszystkie moje ukośniki odwracają się. Jak mogę zdefiniować właściwość z dokładnie taką samą zawartością z ukośnikami?

Odpowiedz

11

Nie sądzę, że istnieje nie-programowy sposób na zrobienie tego. Więc proponuję groovy jedna wkładka z Maven GMaven plugin (GMaven zazwyczaj jest najprostszym sposobem, aby umieścić kod programistyczny do 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> 
+0

Wielkie dzięki. Prace. –

+0

O cholera. Nie wiem nawet, co się stało, ale zacząłem otrzymywać błąd za dokładnie te same rzeczy, które zasugerowałeś: [INFO] groovy.lang.MissingMethodException: Brak sygnatury metody: java.io.File.absolutePath() ma zastosowanie do argumentu typy:() wartości: []. Nic się nie zmieniło i już nie działa –

+0

mój błąd. jest to albo 'absolutePath' bez nawiasów albo' getAbsolutePath() '. naprawiłem mój kod –

2

tylko aktualizacja do odpowiedzi Seana, musiałem dokonać pewnych drobnych korekt w aby dostosować go do najnowszej wersji wtyczki 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>