maven-resources-pluginがファイルを変更しました

maven-resources-pluginがファイルを変更しました

起因

ストリーミングタスクを通じてユーザーアクセスログを分析するプロセスでは、ユーザーのリモートIPを対応する州や都市に解析する必要があります。このプロセスでは、ipライブラリファイルをロードする必要があります。ipライブラリファイルはプロジェクトsrc / main / resourcesの特定のディレクトリに統合されていますが、ロードプロセス中にエラーが報告されます。

net.ipip.ipdb.InvalidDatabaseException: database file size error
  at net.ipip.ipdb.Reader.init(Reader.java:58)
  at net.ipip.ipdb.Reader.<init>(Reader.java:25)
  at net.ipip.ipdb.Reader.<init>(Reader.java:21)
  at net.ipip.ipdb.City.<init>(City.java:17)
  at com.xxx.xxx.util.IpDbUtils.<clinit>(IpDbUtils.java:24)

分析

IPライブラリがclassesディレクトリにコピーされている場合に実行できます。問題はIPライブラリ自体にあるとは言えないのに、Mavenがパッケージ化された後に実行できないのはなぜですか?

インターネットで何度も検索したところ、maven-resources-pluginが問題の原因であることが判明しました。mavenがパッケージ化されている場合、特定のファイルがエンコードされ、ファイルは使用できません。

解決する

プロジェクトをMavenパッケージ化するプロセスでは、プロジェクトを均一にエンコードするようにpom.xml構成ファイルを構成できますが、IPライブラリファイル、証明書ファイルなど、一部のファイルを再エンコードする必要がない場合があります。 -エンコードすると、ファイルが使用できなくなる可能性があります。

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-resources-plugin</artifactId>
    <configuration>
        <nonFilteredFileExtensions>
            <!-- 需要过滤那些后缀的文件 -->
            <nonFilteredFileExtension>ipdb</nonFilteredFileExtension>
            <nonFilteredFileExtension>xls</nonFilteredFileExtension>
        </nonFilteredFileExtensions>
    </configuration>
</plugin>

その後。全て大丈夫!
maven-resources-pluginがファイルを変更しました

おすすめ

転載: blog.51cto.com/15060469/2675537