Вложенные тестовые ресурсы, вызывающие проблемы с путями сборки при использовании Gradle в Eclipse

У меня есть приложение, состоящее из нескольких проектов. Каждая из них имеет следующую компоновку:

источник/

тест/

тест/ресурсы

Вот часть моего файла gradle.build с пользовательскими наборами источников.

subprojects {
apply plugin: 'java'
apply plugin: 'eclipse'
dependencies {
    testCompile "junit:junit:4.11"
}
sourceSets {
    main {
        java {
            srcDir 'src'
        }
    }
    test {
        java {
            srcDir "test"
        }
        resources {           
          srcDir "resources"
        }
    }
}
}

Когда я щелкаю правой кнопкой мыши проект в eclipse и «Обновить все», он не делает test/resources исходной папкой. Только src и test являются исходными папками. Я что-то не понимаю? Должен ли я добавлять ресурсы в путь к классам отдельно? Любая помощь будет принята с благодарностью, спасибо!


person bjoern    schedule 22.04.2014    source источник


Ответы (2)


Я согласен с Радимом из-за вложенной папки «test/resources». В любом случае, если вы хотите добавить папку test/resources в свой проект в Eclipse, вам нужно написать следующее:

sourceSets {
    main {
        java {
            srcDir 'src'
        }
    }
    test {
        java {
            srcDir "test"
        }
        resources {
          srcDir "test/resources"
        }
    }
}
person Andreas Schmid    schedule 13.12.2014

Вы проверили журнал ошибок в своем Eclipse?

Ваш sourceSets.test.resources.srcDir теперь настроен на ресурсы (вероятно, отсутствующие в вашем проекте), а не на «тест/ресурс». Даже тогда я бы боялся, что это вложение test/test/resources будет работать с Eclipse. Вы можете попробовать использовать некоторые исключения, чтобы определить два отдельных дерева для Eclipse.

person Radim    schedule 22.04.2014
comment
В eclipse вы можете легко настроить вложенную папку в исходной папке, чтобы она рассматривалась как отдельная исходная папка. Но мне нужен способ воспроизвести это в gradle, иначе прямо сейчас я не могу запустить свои тесты из eclipse, потому что он говорит, что мои ресурсы не находятся в пути к классам. - person bjoern; 23.04.2014
comment
С какой стати ты хочешь так думать? Вам придется иметь дело с этим, когда вы хотите построить свой проект с помощью любого инструмента сборки. Вам придется иметь дело с этим, когда вы поймете, что может быть и другая IDE. Если бы вы использовали 'test/java` + test/resources или только один корень test, ваша жизнь была бы намного проще. - person Radim; 23.04.2014