创建msbuild类型的自定义Gradle任务

时间:2017-07-20 15:45:37

标签: gradle msbuild

我目前正在运行

gradle 4.0.1

groovy 2.4.11

JVM 1.8.0_131

我尝试创建一个将执行两个不同Visual Studio解决方案的自定义任务。我有abc.sln和xyz.sln,我想有一个gradle脚本可以调用两个解决方案中的任何一个来构建。

buildscript 
{
    repositories 
    {
        jcenter()
        mavenCentral()
    }
    dependencies 
    {
        classpath "com.ullink.gradle:gradle-msbuild-plugin:2.9"
    }
}

msbuild { 
    group = "Custom"

    solutionFile = 'abc.sln'
    projectName = project.name
    configuration = 'Debug'
    //verbosity = 'detailed' 
    targets = ['Clean', 'Rebuild']
}

apply plugin 'msbuild'

我希望有另一项任务

task msbuild2 (type: msbuild) {
    group = "Custom"

    solutionFile = 'xyz.sln'
    projectName = project.name
    configuration = 'Release'
    //verbosity = 'detailed' 
    targets = ['Clean', 'Rebuild']
}

然而我收到错误:

  

出了什么问题:评估根项目' Windows'

时出现问题      

com.ullink.Msbuild_Decorated无法强制转换为java.lang.Class

关于如何创建msbuild类型的自定义任务的任何想法?

1 个答案:

答案 0 :(得分:1)

您必须在此处按类名传递任务类型。班级名称为com.ullink.Msbuild。所以你可以做到

import com.ullink.Msbuild

task myMsBuild(type:Msbuild){
    ...
    ...
}

task myMsBuild(type: com.ullink.Msbuild){
    ...
    ...
}
BTW:案例敏感性在这里很重要!