当前位置: 首页 > 知识库问答 >
问题:

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

韦星文
2023-03-14

我遵循一个关于将工件发布到Nexus的教程,并以一个简单的Java应用程序为例。提供了一个Gradle文件,用于更改。最后,它看起来是这样的:

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时,我收到以下错误:

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]

Gradle版本:Gradle 7.4.2

我做错了什么?

共有1个答案

郎聪
2023-03-14

“方法无签名”问题是闭包无法编译时发生的错误。它应该在即将推出的Gradle 7.5版中得到修复。

它无法编译的原因是,工件是一个属性,而扩展是一种方法(两者都有)。还有一种称为伪影(单数)的方法,您可能想要使用。

很难猜测要使用什么语法,因此请查看此处的文档。

有多种方式可以表达这份出版物,但有一种类似于下面的代码片段。

publications {
    maven(MavenPublication) {
        artifact("build/libs/my-app-$version"+".jar") {
            extension('jar')
        }
    }   
}
 类似资料:
  • 我使用gradle创建了一个简单的java项目,从“gradle init——类型java应用程序”开始。 主java文件的内容-“App.java”: 文件“build.gradle”的内容: gradle似乎已成功下载log4j jar文件: 在~/中有一组log4j jar/pom文件。gradle目录。当我尝试生成时,出现以下生成错误: 我对gradle/java是新手。任何帮助都将不胜感

  • 当Android studio gradle尝试构建我的应用程序时,我遇到了以下例外情况。 行:3 评估项目“:app”时出现问题。方法无签名:build\u 9zxr20k2zkn73ctdrehcrmd74。android()适用于参数类型:(build\u 9zxr20k2zkn73ctdrehcrmd74$\u run\u closure1)值:[build\u 9zxr20k2zkn73

  • 当我构建我的应用程序时,我遇到以下错误,请帮助。 运行应用程序时没有错误,制造战争时出错。

  • 我创建了一个phonegap项目,并通过以下方式添加了android平台http://docs.phonegap.com/en/4.0.0/guide_cli_index.md.html#The此文档的命令行界面。当我尝试使用以下命令构建它时: cordova build或cordova build android 我得到了这个错误。

  • 问题内容: 我正在尝试使用Gradle构建相对简单的JavaFX应用程序。但是,我不知道该怎么做。 我是Gradle的新手,对于简单的(非javafx)项目,我已经成功使用了插件,并构建和打包了库和命令行应用程序。 但是,关于JavaFX,我完全陷入困境。我已经阅读了这篇文章,该文章建议使用该插件,但是我只能找到该插件的源代码,但是没有关于如何实际使用它的文档(在文章中,他们只是从远程URL应用它

  • 我试图使用Gradle构建一个相对简单的JavaFX应用程序。但是,我完全不知道该怎么做。 我对Gradle比较陌生,对于简单的(非JavaFX)项目,我已经成功地使用了插件和来构建和打包库和命令行应用程序。 然而,当涉及到JavaFX时,我完全被卡住了。我读过这篇文章,其中建议使用插件,但是我只能找到这个插件的源代码,而没有关于如何实际获取它和使用它的文档(在文章中,他们只是从远程URL应用它,