Frage

ich eine Anwendung, die in einer Windows-Umgebung entwickelt wird. Die Anwendung selbst wird auf einer Linux-Umgebung eingesetzt werden. Jedes Mal, wenn ich diese Anwendung bereitstellen muss ich ausführbare Dateien auf UNIX-Format konvertieren dos2unix verwenden. Ursprünglich dachte ich, das vom Windows-CP1252-Codierung verursacht wurde, so dass ich Maven aktualisiert die Dateien in UTF-8 zu kodieren. Das ist nicht mein Problem zu lösen, und ich fand schnell heraus, dass dieser mit Wagenrücklauf und Zeilenvorschub zu tun hat, durch diese Website zu suchen. Gibt es eine Möglichkeit haben Maven alle Dateien auf UNIX-Format während des Build-Prozess umwandeln? Ich verwende Maven 2.2.1 und Java 5.

War es hilfreich?

Lösung

Sie können das Maven antrun Plugin die fixcrlf ant Aufgabe:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>ant-test</groupId>
    <artifactId>ant-test</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <id>ant-test</id>
                        <phase>package</phase>
                        <configuration>
                            <tasks>
                                <fixcrlf ... />
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

Andere Tipps

Die Montage-Plugin hat eine lineEnding Option, die kann die Zeilenende der Dateien für einen bestimmten fileSet zur Steuerung verwendet werden. Dieser Parameter ist es genau das zu tun, was Sie wollen. Letztlich könnten Sie Zip-Archive mit mit CRLF Linien und tar.gz-Archiven mit LF Linien bauen.

z.

...
<fileSet>
    <directory>${basedir}/src/main/build/QA</directory>
    <outputDirectory>/bin</outputDirectory>
    <includes>
        <include>start.sh</include>
    </includes>
    <lineEnding>unix</lineEnding>
</fileSet>
...

Mögliche Werte zu dieser Zeit sind:

  • "halten" - Bewahren Sie alle Zeilenende
  • "UNIX" - Verwenden Unix-Zeilenende (das heißt "\ n")
  • "LF" - Verwendung einer einzigen Zeile-feed Zeilenenden (d.h. "\ n")
  • "dos" - Verwenden Sie DOS- / Windows-Stil Zeilenende (das heißt "\ r \ n")
  • "Fenster" - Verwenden Sie DOS- / Windows-Stil Zeilenende (das heißt "\ r \ n")
  • "crlf" - Verwendung Wagenrücklauf, Zeilenvorschub Zeilenende (das heißt "\ r \ n")
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top