Gradle::在sourceSets中设置outputDir时找不到参数main()方法

时间:2019-02-20 05:19:45

标签: java gradle build.gradle gradle-plugin

请在下面找到脚本,以使用gradle清理并构建项目。

一切正常,直到我将outputDir添加到java块中的sourceSets为止。

在注释outputDir行时,gradle清理和构建成功,但是类文件在我不想要的“ build / classes // main”中生成。我想要将类放在目录“ build / classes //”中,而不是创建主文件夹并将类文件放在其中。

import React, { Component } from 'react';
import PropTypes from 'prop-types';

也尝试了apply plugin: 'java' //Declarations def projectName="SomeProject" def projectDir="build//classes" sourceSets { main { java { srcDir 'src' outputDir = file("${projectDir}") } } } dependencies { compile fileTree(include: ['*.jar'],dir: 'lib') } jar{ manifest { attributes 'Main-Class': 'Foo' attributes 'Class-Path': 'lib/com.jcraft.jsch_0.1.31.jar lib/commons-io-2.6.jar lib/commons-net-3.6.jar lib/javax.mail.jar lib/jsch-0.1.54.jar lib/json-simple-1.1.1.jar lib/jxl-2.6.jar lib/ojdbc8.jar' } baseName = '${projectName}' } ,但发生了与

相同的错误
outputdir 'build//classes/

请提出我想念的内容。对我来说似乎是一些基本问题,但无法破解。

1 个答案:

答案 0 :(得分:0)

请参阅此文档:https://docs.gradle.org/current/dsl/org.gradle.api.tasks.SourceSetOutput.html

outputDir属性,而不是方法,因此您没有使用正确的语法来设置属性值:请改用以下内容:< / p>

sourceSets {
    main {
        java {
            srcDir 'src'
            outputDir = file("${projectName}")
        }
    }
}

注意:您在'${projectName}'中使用单引号'而不是双引号 引号“:这不能工作,因为您的变量projectName不会被求值。