Ресурсы, не скопированные на выходной путь в IntelliJ 12.1.4
Кажется, я сделал что-то, чтобы сообщить IntelliJ не копировать исходные ресурсы (например, файлы XML и свойств) в выходную папку компилятора.
Ресурсы не копируются в выходной путь компилятора. Ресурсы Тест копируются в папку тестового вывода, но ресурсы источника не копируются.
Исходная папка: 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
У меня были те же проблемы с IntelliJ IDEA 13 с использованием Maven.
Я решил это, добавив это в мой тег build в файле pom.xml:
<build>
...
<resources>
<resource>
<directory>src/com</directory>
<targetPath>com</targetPath>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
...
</build>
измените путь в соответствии с вашим проектом. Подробнее о Плагин Maven Resources здесь.
Ответ 2
Я столкнулся с той же проблемой. Идея, похоже, имеет ошибку в проектах с зависимостями maven.
Обходные пути, которые я мог найти до сих пор:
- Отключите внешнюю сборку.
- Сгенерируйте ant build script (Идея сделает это для вас) и скомпилируйте с помощью этого script.
Как только вы успешно создали свои артефакты в любом случае, Idea продолжает использовать их до тех пор, пока не изменится зависимость следующего maven.
Ответ 3
При использовании Gradle попробуйте добавить ресурсы в sourceSets
(используйте приведенный ниже код, когда у вас есть файлы ресурсов в той же папке, что и исходные файлы, в противном случае адаптируйте путь)
sourceSets {
main {
java {
srcDirs 'src'
}
resources {
srcDirs 'src'
}
}
test {
java {
srcDirs 'test'
}
resources {
srcDirs 'test'
}
}
}
Обратитесь к Как добавить ресурсы в sourceSet с помощью gradle?
Ответ 4
В случае 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>