2016-05-11 1 views
0

複数のMavenプロジェクトを作成しています.1つのサブプロジェクトには、いくつかのリソースファイル(フリーマーカーテンプレートファイル)があります。オペレーティングシステムに応じてプロジェクトからEARを作成すると、Mavenはテンプレートファイルの行区切り文字を更新しています。
Windowsでmvn installを実行すると、行区切り文字がそのまま保持され、linuxで実行すると行区切り文字が変更されます。
テンプレートはWindowsマシン上に作成され、デフォルトの区切り文字を持っていますので、Windows/Linux上でプロジェクトをビルドしてもMavenを変更しないようにします。コードは常にWindowsマシンにデプロイされ、Linuxの行区切り文字に遭遇すると失敗します。
Mavenに行区切り記号を混乱させないように指示する方法はありますか? プロジェクトPOMはMavenで行区切りを設定する

<project> 
    <parent> 
     <groupId>com.xyz</groupId> 
     <artifactId>Foo</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 
    </parent> 
    <artifactId>FooBatch</artifactId> 
    <packaging>jar</packaging> 
    <properties> 
     <spring-version>4.1.4.RELEASE</spring-version> 
    </properties> 
    <dependencies> 
     <dependency> 
      <groupId>org.freemarker</groupId> 
      <artifactId>freemarker</artifactId> 
      <version>2.3.21</version> 
     </dependency> 
     // and more dependencies 
    </dependencies> 

</project> 

のように見え、ここPOM

<project> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.xyz</groupId> 
    <artifactId>Foo</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <modules> 
     <module>FooBatch</module> 
     <module>FooEJB</module> 
     <module>FooEAR</module> 
    </modules> 

    <build> 

    <pluginManagement> 
     <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <configuration> 
       <!-- http://maven.apache.org/plugins/maven-compiler-plugin/ --> 
       <source>1.6</source> 
       <target>1.6</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <version>2.18.1</version> 
      <configuration> 
       <!-- skips surefire tests without skipping failsafe tests. Property 
        value seems to magically default to false --> 
       <skipTests>${skipUnitTests}</skipTests> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-failsafe-plugin</artifactId> 
      <version>2.18.1</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>integration-test</goal> 
         <goal>verify</goal> 
        </goals> 
        <configuration> 
         <reportsDirectory>${project.build.directory}/surefire-reports</reportsDirectory> 
         <argLine>${jacoco.agent.arg}</argLine> 
        </configuration> 
       </execution> 
      </executions> 
      <configuration> 
       <!-- skips failsafe tests without skipping surefire tests. Property 
        value seems to magically default to false --> 
       <skipITs>${skipITTests}</skipITs> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.jacoco</groupId> 
      <artifactId>jacoco-maven-plugin</artifactId> 
      <version>0.7.2.201409121644</version> 
      <executions> 
       <execution> 
        <id>jacoco-initialize</id> 
        <goals> 
         <goal>prepare-agent</goal> 
        </goals> 
       </execution> 
       <execution> 
        <id>jacoco-site</id> 
        <phase>package</phase> 
        <goals> 
         <goal>report</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
    </pluginManagement> 
</build> 
</project> 
+0

リソースをフィルタリングしていますか? POMを投稿できますか? – Tunaki

+0

@ Tunaki nop、私はポストにPOMを追加しました。 – xyz

+0

親のPOMを投稿できますか?フィルタリングがない場合、またはより一般的にはファイルがコピーされずにプラグインによって何らかの形で処理されていない場合、Mavenはファイル区切り文字を混乱させるべきではありません。 – Tunaki

答えて

0

があなたの親ポンポンに以下を追加してみ親です。

<project> 
... 
    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
関連する問題