gradle: пользовательское задание - PullRequest
3 голосов
/ 24 февраля 2011

Мне кажется, что я упускаю что-то очевидное здесь, но, кажется, я не могу его найти.

У меня есть проект, в котором я хочу, чтобы моя структура пакета была так* Я хочу определить задачу, которая упаковывает классы для iface и превращает ее в банку.Итак, я следовал инструкциям пользователя здесь: http://www.gradle.org/0.8/docs/userguide/userguide_single.html#configureSourceSet (я использую версию 0.8).

Теперь у меня есть это,

sourceSets {
    main {
        java {
            srcDir 'src'
        }
        resources {
            srcDir 'src'
        }
    }
    intTest {
        java {
            srcDir 'src/iface/'
        }
        resources {
            srcDir 'src'
        }
    }
    test {
        java {
            srcDir 'test'
        }
        resources {
            srcDir 'src'
        }
    }
}


task intTestJar(type: Jar, dependsOn: intTestClasses) {
    from sourceSets.intTest.classes
}

И я могу убедиться, что классы в intTest правильно создаются в /build/classes/intTest.Однако попытка вызвать intTestJar всегда дает мне следующее предупреждение:

[ant:jar] Warning: skipping jar archive C:\workspace\foo\build\libs\foo-1.0.jar because no files were included.

Я не понимаю этого, потому что классы создаются успешно.Кроме того, полная задача сборки успешно создает всю флягу.

Идеи?

1 Ответ

3 голосов
/ 25 февраля 2011

Это решение работает с последней версией Gradle (0.9.2).Я выполнил задачу intTestJar точно так, как показано выше (конечно, добавив плагин java) для этого файлового дерева:

└── iface
    └── ifacePackageOne
        ├── Test.java
        └── testFile.txt

и вот результирующая структура jar:

├── META-INF
│   └── MANIFEST.MF
└── iface
    └── ifacePackageOne
        ├── Test.class
        └── testFile.txt

Итак, короткийответ - попробуйте более новую версию Gradle.http://gradle.org/

...