2013-12-05 5 views
0

Я пытался создать два отдельных файла jar с одним build.gradle.Как создать два отдельных файла jar с одним build.gradle

Он почти работает, но один перепишет другой. Каков правильный способ сделать это?

jar { 
     //include contents of output dir 
     from "$buildDir/classes/main" 
     exclude '**/a1/**' 
     archiveName "X1-1.0.0.jar" 
} 

jar { 
     //include contents of output dir 
     from "$buildDir/classes/main" 
     exclude '**/a2/**' 
     archiveName "X2-1.0.0.jar" 
} 

Благодаря

ответ

2

вместо настройки той же задачи Jar дважды, вам нужно использовать две задачи Jar. Предполагая, что вы используете java плагина, вы можете использовать задачу Jar имени jar добавила, что плагин, и добавить еще один себя:

// reconfigure the Java plugin's `jar` task 
jar { 
    exclude '**/a1/**' 
    baseName = 'X1' 
} 

// need to configure this one from scratch 
task x2jar(type: Jar) { 
    // referring to the output in this way 
    // allows Gradle to infer task dependencies automatically 
    from sourceSets.main.output 

    exclude '**/a2/**' 
    baseName = 'X2' 
} 

// one way to make `gradle build` run both Jar tasks 
assemble.dependsOn(x2jar) 

Для получения дополнительной информации о параметрах настройки обратитесь к Gradle Build Language Reference.

+0

Я пробовал. Он не создал X2.jar. Я изменил строку baseName = 'X2' на archiveName 'X2.jar'. Это тоже не сработало. ; = ( – johnsam

+0

Изменен сборка.dependsOn (x2jar) на jar.dependsOn (x2jar). Теперь это сработало. Спасибо! – johnsam

+0

Либо вы не запускали 'gradle build', либо у вас нестандартная сборка.' Jar.dependsOn (x2jar) 'является чем-то вроде взлома, потому что две задачи на самом деле не зависят друг от друга. –

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