/ / Gradle ant build файл не е наличен по време на фаза на конфигуриране - groovy, gradle, ant, build.gradle

Графичният файл за създаване на мравки не е налице по време на конфигурацията - groovy, grale, ant, build.gradle

Не мога да разбера как да изпълня мравките в случай, че мравка файлът build.xml не е наличен по време на фаза на конфигуриране, Защото това е отдалечен ресурс (плъгин за отдалечени ресурси на Maven).

Така че основно трябва първо да получа този отдалечен ресурс като този:

configurations {
remoteResources
}

dependencies.remoteResources "group:my-remote-resource:version"

task getRemoteResources(type: Copy) {
from(zipTree(configurations.remoteResources.first()))
into("$buildDir/remote-resources")

// replace placeholders
filter(org.apache.tools.ant.filters.ReplaceTokens, , tokens: remotePlaceholders)
}

Само тогава имам build.xml в

"$buildDir/remote-resources"

Но не мога да го използвам ant.importBuild тъй като това очаква build.xml да бъде на разположение по време на конфигурацията, което не е мой случай.

Мислех да преместя отдалечения ресурс"изтегляне" в инициализираща фаза, но имам проект с няколко модула и въпреки че само някои подпроекти използват този отдалечен ресурс, всички те имат собствени заместители.

Има ли някакъв начин как да се изпълнят мишените в този специален случай?

EDIT: Намерих доста хубаво решение използване на Ant 's ProjectHelper и класове на проекта. Така че предполагам, че това е моят отговор ..

Отговори:

0 за отговор № 1

Така че тук е окончателното решение. (както вече споменахме кредитите) грууви-алманах)

import org.apache.tools.ant.Project;
import org.apache.tools.ant.ProjectHelper;

task executeAntTarget(dependsOn: getRemoteResources) << {
def antFile = new File("$buildDir/remote-resources/build.xml")
def antProject = new Project()
antProject.init()
ProjectHelper.projectHelper.parse(antProject, antFile)

antProject.executeTarget("<target-to-execute>");
}