2011-11-29 8 views
5

¿Existe una manera elegante de usar una dependencia específica como un objeto de archivo (dependencia de conversión al objeto de archivo). A menudo se necesita para pasar un archivo como argumento a una tarea task/ant etc. Me ayudó con configurations.myDependency.files.iterator().next() Pero esto no parece muy intuitivo.¿Cómo usar una dependencia como objeto de archivo?

Respuesta

7

Creo que quiere decir configuración, no dependencia. Asumiendo que tiene algo como:

configurations{ 
    myConf 
} 

dependencies{ 
    myConf 'mydep:mydep:1.0' 
} 

Entonces, si está seguro de que va a haber un solo archivo en todas sus dependencias para myConf entonces puede hacer configurations.myConf.singleFile (tipo de retorno es File).

Sin embargo, dado que la configuración puede contener varios archivos, para que su código sea más robusto debe iterar sobre todos los archivos en configurations.myConf.files (el tipo de devolución es Set<File>).

Si necesita extraer frasco de la dependencia específica de una configuración que puede hacer algo como:

configurations.myConf.files { dep -> dep.name == 'mydep' } 

donde dep es de tipo Dependency y el tipo de retorno es Set<File>.

Para obtener más información, consulte Configuration javadoc.

Cuestiones relacionadas