Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.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
Gradle插件:无法转换“;A.txt";将类Java.io.File转换为类org.gradle.api.File.Property_Java_Android_Gradle_Build_Gradle Plugin - Fatal编程技术网

Gradle插件:无法转换“;A.txt";将类Java.io.File转换为类org.gradle.api.File.Property

Gradle插件:无法转换“;A.txt";将类Java.io.File转换为类org.gradle.api.File.Property,java,android,gradle,build,gradle-plugin,Java,Android,Gradle,Build,Gradle Plugin,我正在尝试用DSL编写一个插件: model { model1 {input = file(A.txt) output = file("/")} model2 {input = file(A.txt) output = file("/")} } 基于model1和model2,我将进行处理,并将结果输出到输出目录中 ​class Extension { final String name final Property<file> i

我正在尝试用DSL编写一个插件:

model {
 model1 {input = file(A.txt) output = file("/")}
 model2 {input = file(A.txt) output = file("/")}
}
基于model1和model2,我将进行处理,并将结果输出到输出目录中

​class Extension 
{
 final String name
 final Property<file> input
 final Property<file> output

 @Inject
 Extension(String name,ObjectFactory objectfactory)
 {
   this.name = name
   input = objectfactory.property(File)
   output = objectfactory.property(File)
 }

}
​类扩展
{
最终字符串名
最终属性输入
最终属性输出
@注入
扩展名(字符串名称,ObjectFactory ObjectFactory)
{
this.name=name
输入=objectfactory.property(文件)
输出=objectfactory.property(文件)
}
}
///插件类

class Plugin implements Plugin<Project> {
@Override
void apply(final Project project) {
    NamedDomainObjectContainer<Extension> container= project.container(Extension) {
            name -> new Extension(name, project.getObjects());
        }
    project.getExtensions().add("model", container);

    container.each {
            String taskName = "model" + name;
            project.tasks.create(taskName, Task)  {
                    input.set(input)
                    output.set(output)
                }
        }
}
类插件实现插件{
@凌驾
无效申请(最终项目){
NamedDomainObjectContainer容器=project.container(扩展名){
名称->新扩展(名称,project.getObjects());
}
project.getExtensions().add(“模型”,容器);
每个集装箱{
字符串taskName=“model”+名称;
project.tasks.create(任务名,任务){
输入。设置(输入)
output.set(输出)
}
}
}
} ​

//任务类

class Deploy extends DefaultTask
{
  @InputFile
  Property<File> input = project.objects.property(File)


  @OutputFile
  Property<File> output= project.objects.property(File)

  @TaskAction
 def task()
 { 
   //custom logic
 }
}​
类部署扩展了DefaultTask
{
@输入文件
属性输入=project.objects.Property(文件)
@输出文件
属性输出=project.objects.Property(文件)
@任务行动
def任务()
{ 
//自定义逻辑
}
}​
这段代码的灵感来源于https://guides.gradle.org/implementing-gradle-plugins/(服务器环境插件)

但是当我运行这个时,我无法将Java.io.File类的“A.txt”转换为org.gradle.api.File.Property类

有人能告诉我这里的问题和解决方法吗

谢谢

额外观察:
当我在build.gradle中更改=with.set时,错误会更改为stackoverflow

您确定不想将字符串传递给
文件
方法,例如
文件('a.txt')
?是的,我也尝试了同样的转换错误,字符串无法转换为属性。