LoginSignup
5

More than 5 years have passed since last update.

「リソースは <ファイル名> の複製であるため、出力フォルダーにコピーされませんでした」というEclipse警告について

Last updated at Posted at 2015-03-21

Eclipseのビルド警告に関する小ネタ

リソースは src/main/resources/log4j2.xml の複製であるため、出力フォルダーにコピーされませんでした

ビルドして動作もするのに「リソースは src/main/resources/log4j2.xml の複製であるため、出力フォルダーにコピーされませんでした」というようなメッセージが出ている場合の対処方法について記載する。

ちなみに英語だと以下のメッセージで表示される。
「The resource is a duplicate of src/main/resources/log4j2.xml and was not copied to the output folder」

この警告に関する設定は「Java > コンパイラー > ビルド」にある、
出力フォルダーの重複リソースが該当する。

image

この設定は「無視」にできないため、メッセージを消すためには正しく対応する必要がある。

参考

Duplicated resources
"Indicate the severity of the problem reported when more than one occurrence of a resource is to be copied into the output location."

警告への対応

この警告は、ビルドの出力フォルダの同フォルダ上に同名のファイルをコピーしようとしている場合に発生する。

このlog4j2.xmlの場合は、すでにmain配下のファイルをコピーしているのに、test配下のファイルもコピーして上書きしようとしているため、コピーしなかったという情報を警告で表示していることになる。

解決させるためには、プロジェクトのプロパティを変更し、パッケージごとの出力先を変更する必要がある。

プロパティ:Javaのビルド・パスの変更

出力先のデフォルトは、以下のようにソース・フォルダー全てで共通となっている。

image

なので「ソース・フォルダーごとに出力フォルダーの指定を可能にする」のチェックを外し、mainとtestがそれぞれ別のフォルダに出力されるように変更していく。

変更例

  1. 「デフォルトの出力フォルダー」を reins/bin から reins/bin/main に変更する。(mainソースのパスにする)
  2. src/mainフォルダ配下の全ソース・フォルダーの「出力先フォルダー」を bin/main に変更する。 image
  3. src/testフォルダ配下の全ソース・フォルダーの「出力先フォルダー」を bin/test に変更する。

全て設定すると以下のようになる。

image

プロパティーをOKボタンで閉じるとフルビルドが走り、当該警告が消えていることが確認できると思う。

放置しがちなビルド警告だが、testのクラスが本番資材に含まれている可能性もあるため、対応するようにした方が良い。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5