Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Groovy Gradle ant构建文件在配置阶段不可用_Groovy_Gradle_Ant_Build.gradle - Fatal编程技术网

Groovy Gradle ant构建文件在配置阶段不可用

Groovy Gradle ant构建文件在配置阶段不可用,groovy,gradle,ant,build.gradle,Groovy,Gradle,Ant,Build.gradle,如果在配置阶段antbuild.xml文件不可用,我不知道如何执行ant目标。因为它是一个远程资源(Maven远程资源插件) 基本上,首先我需要像这样获取远程资源: configurations { remoteResources } dependencies.remoteResources 'group:my-remote-resource:version' task getRemoteResources(type: Copy) { from(zipTree(configu

如果在配置阶段antbuild.xml文件不可用,我不知道如何执行ant目标。因为它是一个远程资源(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在配置过程中可用,这不是我的情况

我想将远程资源“下载”移动到初始化阶段,但我有一个多模块项目,尽管只有一些子项目使用此远程资源,但它们都有自己的占位符要替换

在这种特殊情况下,有没有办法执行ant目标


编辑:我发现使用Ant的ProjectHelper和Project类非常好。所以我想这就是我的答案。

这里是最终的解决方案。(如前所述,学分将转到)

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

TaskExecuteAntTarget(dependsOn:getRemoteResources)因此这里是最终的解决方案。(如前所述,学分将转到)

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

TaskExecuteAntTarget(dependsOn:getRemoteResources)您可以回答自己的问题。这可能会对其他人有所帮助:)你可以回答你自己的问题。这可能会对其他人有所帮助:)
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>');
}