私はmaven-resource-pluginを使用して、私のプロジェクトのいくつかのリソースをフィルタリングします。私は私の親プロジェクトで:サブプロジェクトでMavenのさまざまなファイルタイプのエンコードを設定しますか?
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
私は、デフォルトのエンコーディング= ISO-8859-1でプレーンjava properties fileあるtest.propertiesファイルを持っています。このファイルには含まれています
aboutText=Version ${project.version} © 2012 blabla
を正しく私はそのエンコーディングで別々の実行それぞれにMavenのリソース・プラグインを分割していることを確認、このファイルフィルタを作成するには:
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<nonFilteredFileExtensions>
<nonFilteredFileExtension>ico</nonFilteredFileExtension>
<nonFilteredFileExtension>jar</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
<executions>
<execution>
<id>filter-properties-files</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<!-- java properties files are encoded in ISO-8859-1 so when
filtering those files we stick with that encoding. -->
<encoding>ISO-8859-1</encoding>
<outputDirectory>${basedir}/after</outputDirectory>
<resources>
<resource>
<filtering>true</filtering>
<directory>${basedir}/before</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
<execution>
<id>filter-non-properties-files</id>
<phase>generate-resources</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<encoding>${project.build.sourceEncoding}</encoding>
<outputDirectory>${basedir}/after</outputDirectory>
<resources>
<resource>
<filtering>true</filtering>
<directory>${basedir}/before</directory>
<includes>
<include>**/*.product</include>
<include>**/*.inf</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
これは行き過ぎと思われると私は感じています私はプラグインを正しく使用していないか、この問題を別の方法で処理する必要があることを示しています。たぶんプロパティファイルの特殊文字を直接エンコードすることに固執することがあります。
aboutText=Version ${project.version} \u00a9 2012 blabla
?
このために独自のmavenプラグインを作成することを検討しましたか? (antプラグインを使用するオプションがあるかもしれませんが、それはちょっと推測します) – wemu
プロパティファイルの追加セクションを実行する必要がありますか? 私ははソースコード用だと思っていましたが、プロパティファイルはリソースなのでソースコードはありません。 –
hennr
'project.build.sourceEncoding'は実際に' maven-resources-plugin'に適用されます。https://maven.apache.org/plugins/maven-resources-plugin/xref/org/apache/maven/plugin/resources/を参照してください。 ResourcesMojo.html#69、 'encoding'のデフォルト値は' project.build.sourceEncoding'です –