2010-10-06 2 views
9

zu konvertieren habe ich eine Eigenschaft wie folgt definiert:Wie Datei Separator in Maven

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

Da ich Windows als Betriebssystem verwenden, ist es Schrägstriche enthält. Ich möchte diesen Pfad zu einer Glassfish-Domain als JVM-Option hinzufügen (mit Glassfish Maven Plugin). Das Problem ist, dass asadmin nur Schrägstriche als Trennzeichen verwenden kann und alle Backslashes verschwinden. Wie kann ich eine Eigenschaft mit genau demselben Inhalt mit Schrägstrichen definieren?

Antwort

11

Ich glaube nicht, dass es eine nicht-programmatische Möglichkeit gibt, das zu tun. Also schlage ich vor, eine groovige Einzeiler mit dem Maven GMaven plugin (GMaven ist in der Regel der einfachste Weg, programmatischen Code in ein pom einzubetten):

<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

Vielen Dank. Funktioniert. –

+0

Oh Hölle. Ich weiß nicht einmal, was zur Hölle passiert ist, aber ich fing an, Fehler für genau die gleichen Sachen zu erhalten, die Sie vorgeschlagen haben: [INFO] groovy.lang.MissingMethodException: Keine Signatur der Methode: java.io.File.absolutePath() ist für Argument anwendbar Typen:() Werte: []. Nichts ist verändert und funktioniert nicht mehr –

+0

mein Fehler. Es ist entweder 'absolutePath' ohne Klammern oder' getAbsolutePath() '. Mein Code wurde korrigiert –

2

Nur ein Update auf Seans Antwort, ich habe einige kleinere Anpassungen zu machen hatte in Um es an die neuesten Groovy Maven Plugin Version anzupassen:

<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>