2015-11-05 2 views
1

У меня есть сценарий градиента, который в основном извлекает банку из репо нашей компании в текущий рабочий каталог.
Что я хотел бы сделать, это добавить задачу, которая также извлекает файлы ivy.xml в другой каталог.Gradle - Как получить XML-файлы плюща

build.gradle выглядит следующим образом:

repositories { 
    ivy { 
     url 'protocol://repo.foocompany.com/' 
     credentials { 
      username "foo" 
      password "bar" 
    } 
    layout 'pattern', { 
     artifact '[organisation]/[module]/[module]-[revision].[ext]' 
     ivy '[organisation]/[module]/ivy-[revision].xml' 
    } 
} 

dependencies { 
    compile 'com.foocompany:bartifact:[email protected]' 
} 

task list << { 
    configurations.compile.each { 
     File file -> println file.name 
    } 
} 

// that's the part I actually use 
task fetch(type: Copy) { 
    from configurations.compile 
    into System.getProperty("user.dir") 
} 

task fetchXml { 
    // and that's where I'm stuck no clue what I should put in there 
} 

При запуске сценария, моя задача выборки работает точно так же, как предполагалось:

$> gradle fetch 
Download protocol://repo.foocompany.com/com.foo/bartifact/ivy-rev.xml 
Download protocol://repo.foocompany.com/com.foo/bartifact/bartifact-rev.ext 
:fetch 

$> ls 
bartifact-rev.ext 

И я не могу получить, что XML-файл. Я пробовал довольно много вещей, но я просто не могу получить его нигде, кроме как вручную, из кэша градиента.

ответ

1

Просто добавьте новый репозиторий Ivy только для файлов Ivy:

repositories { 
    ivy { 
     // Change the values here to match your environment. 
     url 'http://archiecobbs.github.io/ivyroundup/repo/modules/' 
     layout 'pattern', { 
      artifact '[organisation]/[module]/[revision]/ivy.[ext]' 
     } 
    } 
} 

configurations { 
    ivyFiles 
} 

dependencies { 
    ivyFiles 'org.apache.geronimo.specs:activation:[email protected]' 
} 

task downloadIvyFiles(type: Copy) { 
    from configurations.ivyFiles 
    into temporaryDir 
} 
Смежные вопросы