首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Gradle构建应用程序时出错-没有方法签名: build_49q3y83g7hdxe5s51k5187z33.publishing()

使用Gradle构建应用程序时出错-没有方法签名: build_49q3y83g7hdxe5s51k5187z33.publishing()
EN

Stack Overflow用户
提问于 2022-07-07 14:20:56
回答 1查看 697关注 0票数 2

我正在学习将工件发布到Nexus的教程,并以一个简单的Java应用程序为例。提供了一个Gradle文件并打算进行更改。最后,看起来是这样的:

代码语言:javascript
复制
plugins {
    id 'java'
    id 'org.springframework.boot' version '2.2.2.RELEASE'
    id 'io.spring.dependency-management' version '1.0.8.RELEASE'
}

group 'com.example'
version '1.0-SNAPSHOT'

sourceCompatibility = 1.8

apply plugin: 'maven-publish'

publishing {
    publications {
        maven(MavenPublication) {
            artifacts("build/libs/my-app-$version"+".jar") {
                extension = 'jar'
            }
        }   
    }

    repositories {
        maven {
            name'nexus'
            url "http://someip:someport/repository/maven-snapshots/"
            credentials {
                username project.repoUser
                password project.repoPassword
            }
        }
    }
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    implementation group: 'net.logstash.logback', name: 'logstash-logback-encoder', version: '5.2'
    testImplementation group: 'junit', name: 'junit', version: '4.12'
}

当我使用命令./gradle build时,我得到以下错误:

代码语言:javascript
复制
FAILURE: Build failed with an exception.

* Where:
Build file '/Users/matteo/Desktop/devops_bootcamp/java-app/build.gradle' line: 14

* What went wrong:
A problem occurred evaluating root project 'my-app'.
> No signature of method: build_49q3y83g7hdxe5s51k5187z33.publishing() is applicable for argument types: (build_49q3y83g7hdxe5s51k5187z33$_run_closure1) values: [build_49q3y83g7hdxe5s51k5187z33$_run_closure1@79692f52]

分级版本: 7.4.2级

我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-07 16:44:50

“”问题是在闭包无法编译时发生的错误。在即将发布的7.5Gradle版本中,应该是固定

它不能编译的原因是因为artifacts是一个属性,而extension是一个方法(两者都是相反的)。还有一个名为artifact (单数)的方法,您可能希望使用它。

很难仅仅猜测使用哪种语法,所以请查看这里上的文档。

您可以使用多种方式表示此出版物,但其中一种方式类似于下面的代码片段。

代码语言:javascript
复制
publications {
    maven(MavenPublication) {
        artifact("build/libs/my-app-$version"+".jar") {
            extension('jar')
        }
    }   
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72899502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档