2013-06-11 8 views
13

Я, кажется, что-то сделал, чтобы сообщить IntelliJ не копировать исходные ресурсы (например, XML и файлы свойств) в выходную папку компилятора.Ресурсы, не скопированные в выходной путь в IntelliJ 12.1.4

Ресурсы не копируются на выходной путь компилятора. Тестирование ресурсов копируются в тестовую папку, но нет источник ресурсы копируются.

Источник Папка:src

(это C:\dev\myproject\src и содержит XML-файлы)

Test Источник Папка:tests\integration\src

(это C:\dev\myproject\tests\integration\src и содержит файлы XML)

Выход компилятора:

  • Используйте модуль компиляции путь вывода
  • Путь вывода: C:\dev\myproject\build\classes
  • Результат теста путь: C:\dev\myproject\build\test

Настройки -> Compiler -> шаблоны ресурсов: ?*.properties;?*.xml;?*.gif;?*.png;?*.jpeg;?*.jpg;?*.html;?*.dtd;?*.tld;?*.ftl

Это не позволяя мне запускать интеграционные тесты, которые загружают файлы из пути к классам. (У меня нет полного контроля над структурой этого старого проекта, и большинство других разработчиков используют Eclipse.)

Может ли кто-нибудь дать мне несколько указаний относительно того, что мне нужно сделать, чтобы IntelliJ скопировал ресурс выходные папки?

+1

Если это не проект Maven, он должен работать нормально, в противном случае это ошибка, которая [должна представляться] (http://youtrack.jetbrains.com/issues/IDEA) с образцом проекта для воспроизведения. В качестве обходного пути вы можете попытаться отключить внешнюю сборку (http://img189.imageshack.us/img189/3550/20121206235318.png), но это не рекомендуется. – CrazyCoder

+0

У меня уже была [Использовать внешнюю сборку] (http://img690.imageshack.us/img690/1856/intellijcompilersetting.jpg). Я отмахивался от него, и теперь он работает! Но есть пара других разработчиков, которые используют IntelliJ, и у них есть отметка, и ресурсы копируются, как ожидалось. – vegemite4me

+0

Если у вас есть тестовый пример, сообщите об ошибке. – CrazyCoder

ответ

3

Я столкнулся с той же проблемой. Идея, похоже, имеет ошибку в проектах с зависимостями maven.

В обходном я мог найти до сих пор:

  1. Отключение внешнего сборки.
  2. Создайте скрипт сборки муравья (Идея сделает это для вас) и скомпилируйте с этим скриптом.

После того, как вы успешно создали свои артефакты в любом случае, Idea продолжает использовать их до тех пор, пока не изменится зависимость следующего maven.

+2

Для тех, кто использует IntelliJ IDEA 13, внешняя сборка является единственным вариантом, доступным с момента удаления старого компилятора. Таким образом, вы не найдете флажок «Использовать внешнюю сборку» и отключите его. – Aditya

5

У меня были проблемы с IntelliJ IDEA 13 с использованием Maven.

я решил ее, добавив в моей сборки тег в файле pom.xml:

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

путь изменения в соответствии с вашим проектом. Подробнее о Maven Resources Plugin here.

0

В случае JPA при добавлении JPA огранку, 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

При использовании Gradle попробуйте добавить ресурсы к sourceSets (используйте приведенный ниже код, если у вас есть файлы ресурсов в той же папке, что и исходные файлы, в противном случае путь)

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

См How do I add resources to sourceSet with gradle?

 Смежные вопросы

  • Нет связанных вопросов^_^