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

Gradle createPom似乎不阅读Gradle。属性

郎刚捷
2023-03-14

请注意:虽然我在这个问题中提到了ShadowJar插件,但它只是为了提供完整的上下文。我相信任何一位毕业生大师都能回答这个问题,不管他们对ShadowJar的知识水平如何。

目前,我的Groovy项目是使用以下Gradle构建调用构建的:

Gradle干净构建阴影罐

运行此调用将在我的gradle中指定的版本属性下生成一个打包的fat jar。属性文件。例如,ifgradle。属性的版本为1.2.3,则上述调用生成build/libs/myapp-1.2.3。jar

然而,它没有为我的应用程序生成有效的POM。所以我找到了这个答案,并对其进行了一些修改,以产生:

task createPom << {
    pom {
        project {
            groupId ${group}
            artifactId 'myapp'
            version ${version}
        }
    }.writeTo("build/libs/pom.xml")
}

我的想法是groupversion(都在gradle.properties中指定)将被“注入”,这应该会在与我的胖罐相同的目录中生成一个pom.xml

添加createPom任务后,我运行:

Gradle干净构建阴影罐createPom

我得到了这个错误:

FAILURE: Build failed with an exception.

* Where:
Build file 'D:\workspace\blah\myapp\build.gradle' line: 89

* What went wrong:
Execution failed for task ':createPom'.
> No signature of method: java.lang.Object.$() is applicable for argument types: (java.util.Collections$EmptyMap, null) values: [[:], null]
Possible solutions: any(), is(java.lang.Object), wait(), find(), dump(), grep()

* 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: 11.673 secs

这到底是怎么回事?

共有1个答案

司徒捷
2023-03-14

线条:

groupId ${group}
artifactId 'myapp'
version ${version}

不是有效的groovy,可能应该是:

groupId "${group}"
artifactId 'myapp'
version "${version}"
 类似资料:
  • 当我将输入类型属性设置为数字(Android:输入类型=“数字”)并设置数字属性时,就像这个Android:数字=“0123456789”。输入事件按预期正常工作。即仅以数字形式接收输入。参考屏幕截图 当我将inputType属性设置为text person name(Android:input type = " text person name ")并像这样设置digits属性android:d

  • 我在配置Spring MessageSource以忽略我的系统区域设置时遇到问题。当我使用null locale参数调用getMessage时,我希望我的MessageSource选择默认属性文件messages.properties.相反,它选择messages_en.properties.当我将此属性文件的名称更改为messages_fr.properties然后选择默认属性文件。我的系统区域

  • 我的代码看起来像 我的文件如下所示 当我运行程序时,我看到 我怎样才能修好它呢?

  • 目前,我尝试配置Jenkins,这样我就可以自动进行发布构建。它应该将版本号从快照更改为发布版本,并执行所有SVN提交操作。完成后,它应该将其切换回新的快照版本并提交。在我从maven切换到gradle之前,相同的插件工作正常。 我已经创建了一个gradle构建,可以正常工作。它正在从gradle中的属性“version”读取版本。属性文件。此版本是gradle版本中使用的版本。还可以运行“art

  • 问题内容: 我正在尝试使用设置为 我不明白为什么intellij在其安装目录中寻找JDK。 在intellij中: 问题答案: IDEA有2个版本:32位和64位。 您的Java是64位版本,因此您必须运行64位版本的IDEA 。 否则,您可以提供32位JDK或通过IDEA设置来调整行为 https://intellij-support.jetbrains.com/hc/en- us/articl

  • 类似于: -Intellij 14提供的javaHome似乎无效 -Android Studio提供的javaHome不是有效文件夹 但是,我正在尝试使用我的变量,该变量设置为 我不明白为什么intellij在其安装目录中寻找JDK。 在Intellij中: