1) No I can`t use this. There is no hard rule for library and version name so
dependency.name and dependency.version must be used. The problem is that
from Dependency I can`t get corresponding File.

3) new JIRA issue - http://jira.codehaus.org/browse/GRADLE-773


Adam Murdoch-2 wrote:
> 
> 
> 
> Narco wrote:
>> This helped me very much, Thank You!
>> Two more things:
>> 1) I need is to remove versions from file names. The only way a found is
>> this:
>> project.subprojects.collect {
>> it.configurations.each { Configuration config ->
>>                     Configuration extConfig =
>> config.copyRecursive(DependencySpecs.type(Type.EXTERNAL))
>>                     extConfig.allDependencies.each { Dependency
>> dependency
>> ->
>>                         extConfig.each { File file ->
>>                            
>> if(file.name.contains("${dependency.name}-${dependency.version}")){
>>                                 project.logger.info("Copying ${file.path}
>> to
>> ${project.rootLibDir}/${dependency.name}.jar...")
>>                                 File targetFile = new
>> File("${project.rootLibDir}/${dependency.name}.jar")
>>                                 project.ant.copy(file: file.path, toFile:
>> targetFile.path)
>>                             }
>>                         }
>>                     }
>>                 }
>> }
>> Doesn`t look good. Any ideas?
>>   
> 
> The Copy task has a rename() method. You could use that:
> 
> task libs(type: Copy) {
>     ....
>     rename('(.+)-\\d+(\\.\\d+)*(\\.\\w+)', '$1$3')
> }
> 
>> 2) What does subprojects.collect{} means? Didn`t found it in API.
>>   
> 
> The collect() method is something groovy adds to Collection. Have a look 
> at http://groovy.codehaus.org/groovy-jdk/
> 
>> 3) Also I want to do the same for every module to have module/lib/*.jar.
>> It
>> works just by setting other "targetFile" but the problem is, that only
>> first
>> level module dependencies are copied. I want to have there all external
>> libs
>> from all current module dependency modules.
>>
>>   
> 
> I don't think there's an easy way to do this. Could you add a JIRA issue?
> 
>> Adam Murdoch-2 wrote:
>>   
>>>
>>> Narco wrote:
>>>     
>>>> I need to take all third party artefacts from multi-project and copy to
>>>> one
>>>> folder to use them with IDE afterthen. This means I don`t need
>>>> compilation
>>>> or anything else there. From APIs I found that this should work:
>>>> configurations {
>>>> compile
>>>> localArchives.extendsFrom (compile)
>>>> localArchives.exclude(group: 'my.company.group') 
>>>> }
>>>>
>>>> However, when calling localArchives.allDependencies from some task
>>>> gradle
>>>> still tries to resolve internal modules from repository so exclude is
>>>> ignored. For now I have dirty hack:
>>>> project.configurations {
>>>>             compileLib
>>>>             compile.extendsFrom (compileLib)
>>>>             testCompileLib
>>>>             testCompile.extendsFrom (testCompileLib)
>>>>             localArchives.extendsFrom (compileLib, testCompileLib)
>>>>         }
>>>>
>>>> Please help me to make it good looking with only one additional
>>>> configuration or none at all.
>>>>   
>>>>       
>>> Here is an example task you can add to the root project. It will copy 
>>> all the external dependencies for all subprojects into the 'libs' 
>>> directory. It doesn't need any extra configurations, nor will it try to 
>>> build any project dependencies.
>>>
>>> task libs(type: Copy) {
>>>     File libsDir = file('libs')
>>>     doFirst {
>>>         ant.delete(dir: libsDir)
>>>     }
>>>     into libsDir
>>>     // you might want the testCompile or testRuntime configuration
>>> instead
>>>     from { subprojects.collect { 
>>> it.configurations.runtime.copyRecursive(DependencySpecs.type(Type.EXTERNAL))
>>>  
>>> } }
>>> }
>>>
>>>
>>> -- 
>>> Adam Murdoch
>>> Gradle Developer
>>> http://www.gradle.org
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe from this list, please visit:
>>>
>>>     http://xircles.codehaus.org/manage_email
>>>
>>>
>>>
>>>
>>>     
>>
>>   
> 
> -- 
> Adam Murdoch
> Gradle Developer
> http://www.gradle.org
> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/How-to-get-only-third-party-libs-from-dependencies-tp26588195p26694932.html
Sent from the gradle-user mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to