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>
リソースをフィルタリングしていますか? POMを投稿できますか? – Tunaki
@ Tunaki nop、私はポストにPOMを追加しました。 – xyz
親のPOMを投稿できますか?フィルタリングがない場合、またはより一般的にはファイルがコピーされずにプラグインによって何らかの形で処理されていない場合、Mavenはファイル区切り文字を混乱させるべきではありません。 – Tunaki