2013-06-11 4 views
13

IntelliJに、ソースリソース(XMLやプロパティファイルなど)をコンパイラの出力フォルダにコピーしないように指示しているようです。IntelliJ 12.1.4の出力パスにリソースがコピーされない

リソースがコンパイラの出力パスにコピーされていません。 テストリソースはtest ouputフォルダにコピーされますが、ソースリソースはコピーされません。

ソースフォルダ:src

(これはC:\dev\myproject\srcで、XMLファイルが含まれています)

テスト用のソースフォルダ:tests\integration\src

(これはC:\dev\myproject\tests\integration\srcで、XMLファイルが含まれています)

コンパイラ出力:

  • 使用モジュール出力経路
  • 出力パスコンパイル:C:\dev\myproject\build\classes
  • テスト出力経路:C:\dev\myproject\build\test

設定 - >コンパイラ - >リソースのパターン ?*.properties;?*.xml;?*.gif;?*.png;?*.jpeg;?*.jpg;?*.html;?*.dtd;?*.tld;?*.ftl

これはを私がクラスパスからファイルをロードする統合テストを実行するのを妨げています。 (私はこのレガシープロジェクトの構造を完全に制御することはできませんし、他の開発者のほとんどはEclipseを使用しています)

IntelliJにリソースをコピーさせるために必要なことについて、出力フォルダ?

+1

を参照してください(http://youtrack.jetbrains.com/issues/IDEA)を再生するサンプルプロジェクトを作成します。回避策として[外部ビルドを無効にする](http://img189.imageshack.us/img189/3550/20121206235318.png)を試すことができますが、お勧めしません。 – CrazyCoder

+0

私はすでに[外部ビルドを使用](http://img690.imageshack.us/img690/1856/intellijcompilersetting.jpg)を選択しました。私はそれをuntickedして、今働いている!しかし、IntelliJを使用する他の開発者がいくつかあります。彼らは目を覚まし、リソースは期待どおりにコピーされます。 – vegemite4me

+0

テストケースがある場合は、バグを報告してください。 – CrazyCoder

答えて

3

私は同じ問題に直面しています。アイデアは、依存関係のあるプロジェクトにバグがあるようです。私がこれまでに見つかった可能性があり

回避策:

  1. は、外部ビルドを無効にしてください。
  2. Antビルドスクリプトを生成し(Ideaがこれを行います)、そのスクリプトでコンパイルします。

いずれかの方法で成果物を正常に作成すると、Ideaは次のMaven依存関係が変更されるまでこれらの成果物を使い続けます。

+2

IntelliJ IDEA 13を使用している場合は、古いコンパイラが削除されているため、外部ビルドのみが使用できます。したがって、 "Use external build"のチェックボックスは表示されず、無効になります。 – Aditya

5

Mavenを使用したIntelliJ IDEA 13と同じ問題がありました。

私は私のビルドpom.xmlファイル内タグにこれを追加することによってそれを解決:あなたのプロジェクトに応じて

<build> 
... 
<resources> 
    <resource> 
    <directory>src/com</directory> 
    <targetPath>com</targetPath> 
    <includes> 
     <include>**/*.xml</include> 
    </includes> 
    </resource> 
</resources> 
... 
</build> 

変更パス。 Maven Resources Plugin hereの詳細あなたはJPAファセットを追加JPAの場合

0

、IntelliJのは作成されます。

META-INF/persistence.xml under src/main/java 

をしかし、それは、ビルドを更新しません

は、この問題を解決するためのpom.xmlに追加:

<resource> 
    <directory>src/main/java</directory> 
    <includes> 
    <include>**/*.xml</include> 
    </includes> 
    <filtering>true</filtering> 
</resource> 
2

sourceSetsにリソースを追加してください(ソースファイルと同じフォルダにリソースファイルがある場合は以下のコードを使用してください)。パス)

sourceSets { 
    main { 
     java { 
      srcDirs 'src' 
     } 
     resources { 
      srcDirs 'src' 
     } 
    } 
    test { 
     java { 
      srcDirs 'test' 
     } 
     resources { 
      srcDirs 'test' 
     } 
    } 
} 

それ以外の場合は、[報告する必要があります]バグです、それはMavenプロジェクトではない場合は、それが正常に動作する必要がありHow do I add resources to sourceSet with gradle?