2012-05-08 3 views
1

Я медленно перемещаю два проекта в Gradle. Проект A создает файл jar, который используется проектом B.Получение Gradle для публикации источника Jar вместо стандартного скомпилированного Jar

Проект A является компонентом GWT, а Project B является приложением GWT.

Как получить Gradle для создания Jar, который содержит исходный код Java Project A, а не скомпилированные классы?

Я попытался добавить следующее в файл build.gradle, но это создает второй файл Jar, содержащий источник, - я хочу, чтобы главный артефакт содержал источник, чтобы он был опубликован в моем локальном репозитории Maven, когда я запустите задачу установки.

task sourceJar(type: Jar) { 
    classifier = 'sources' 
    from sourceSets.main.allSource 
} 

artifacts { 
    archives sourceJar 
} 

Есть ли способ переопределить стандартную задачу создания Jar?

+0

Для всех, кто просто хочет удалить JAR по умолчанию: 'configurations.archives.artifacts.removeAll {it.archiveTask.is jar}' –

ответ

3

Вы можете определить вашу конфигурацию 'myArtifacts' и опубликовать ее. Обратите внимание, что поскольку install задачи типа Upload, вы должны быть в состоянии изменить конфигурацию по умолчанию артефактов из archives в sourceArchives:

configurations{ 
    sourceArchives 
} 

artifacts{ 
    sourceArchives sourceJar 
} 

install.configuration = configurations.sourceArchives 

Будет надеяться, что install должен теперь только публиковать член из sourceArchives конфигурации.

+0

Спасибо за это - кстати, откуда вы знаете, что задача установки имеет тип Upload ? – Rich

+0

Это в документах Gradle (см. Раздел 45.2 Задачи): http://gradle.org/docs/current/userguide/maven_plugin.html – rodion

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