Gradle:找不到提供的方法() [英] Gradle: Could not find method provided()

查看:489
本文介绍了Gradle:找不到提供的方法()的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这是首选提供了提供了组,这是记录在案

  thufir @ doge:〜/ NetBeansProjects / gradleEAR 
thufir @ doge:〜/ NetBeansProjects / gradleEAR $ gradle clean

失败:构建失败,出现异常。

*其中:
构建文件'/home/thufir/NetBeansProjects/gradleEAR/build.gradle'行:40

*出错:
评估根项目gradleEAR时发生问题。
>在类型为org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler的对象上找不到参数[javax:javaee-api:7.0]的方法provide()。

*尝试:
使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获取更多日志输出。

构建失败

总时间:2.991秒
thufir @ doge:〜/ NetBeansProjects / gradleEAR



plugins {
id'com.gradle.build-scan'version'1.8'
id'java'
id'application'
id'ear'
}

mainClassName ='net.bounceme.doge.json.Main'

buildScan {
licenseAgreementUrl ='https://gradle.com/terms-服务'
licenseAgree ='是'
}

储存库{
jcenter()
}

jar {
manifest {
属性'Main-Class':'net.bounceme.doge.json.Main'
}
}

任务fatJar(type :Jar){
baseName = project.name +'-all'
from {configurations.compile.collect {it.isDirectory()?它:zipTree(it)}}
with jar
manifest {
attributes'Implementation-Title':'Gradle Quickstart','Implementation-Version':'3.4.0'
属性'Main-Class':'net.bounceme.doge.json.Main'
}
}

依赖关系{
编译组:'javax.json ',名称:'javax.json-api',版本:'1.1'
编译组:'org.glassfish',名称:'javax.json',版本:'1.1'
提供'javax :javaee-api:7.0'
}

参考:



Gradle如何解决javaee-api依赖性以构建EAR?

解决方案

提供的配置由 war 插件添加(您未应用),所以它在您的方案中不可用



我建议您使用 compileOnly 配置,即可从Gradle 2.12 + 获得

Which is preferred, provided or provided group and where is this documented?

thufir@doge:~/NetBeansProjects/gradleEAR$ 
thufir@doge:~/NetBeansProjects/gradleEAR$ gradle clean

FAILURE: Build failed with an exception.

* Where:
Build file '/home/thufir/NetBeansProjects/gradleEAR/build.gradle' line: 40

* What went wrong:
A problem occurred evaluating root project 'gradleEAR'.
> Could not find method provided() for arguments [javax:javaee-api:7.0] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 2.991 secs
thufir@doge:~/NetBeansProjects/gradleEAR$ 



plugins {
    id 'com.gradle.build-scan' version '1.8' 
    id 'java'
    id 'application'
    id 'ear'
}

mainClassName = 'net.bounceme.doge.json.Main'

buildScan {
    licenseAgreementUrl = 'https://gradle.com/terms-of-service'
    licenseAgree = 'yes'
}

repositories {
    jcenter()
}

jar {
    manifest {
        attributes 'Main-Class': 'net.bounceme.doge.json.Main'
    }
}

task fatJar(type: Jar) {
    baseName = project.name + '-all'
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
    with jar
    manifest {
        attributes 'Implementation-Title': 'Gradle Quickstart', 'Implementation-Version': '3.4.0'
        attributes 'Main-Class': 'net.bounceme.doge.json.Main'
    }
}

dependencies {
    compile group: 'javax.json', name: 'javax.json-api', version: '1.1'
    compile group: 'org.glassfish', name: 'javax.json', version: '1.1'
    provided 'javax:javaee-api:7.0'
}

In reference to:

How does Gradle resolve the javaee-api dependency to build an EAR?

解决方案

The provided configuration is added by the war plugin (which you are not applying) so it's not available in your scenario

I suggest you use the compileOnly configuration which is available from gradle 2.12+

这篇关于Gradle:找不到提供的方法()的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆