java - 如何使用变量使用Gradle创建pom.xml文件?

标签 java maven gradle

我想编写一个Gradle函数,该函数创建一个pom.xml文件,并将数据(groupId,artifactId,version)作为参数传递。

我创建了以下脚本:

apply plugin: 'maven'
apply plugin: 'java'

def createMainPom(mainDir, groupId, artifactId, version)
{
    pom
    {
        project
        {
            groupId '$groupId' // Error
            artifactId '$artifactId'
            version '$version'
            packaging 'pom'
            name 'New app'
            modules
            {
                module
                {
                    name 'app'
                }
                module
                {
                    name 'integration-tests'
                }
            }
        }
    }.writeTo('$mainDir/pom.xml');
}
[...]

运行它时,在上面用// Error标记的位置出现错误:
> No signature of method: java.lang.String.call() is applicable for argument typ
es: (java.lang.String) values: [a]
Possible solutions: wait(), any(), wait(long), split(java.lang.String), find(jav
a.lang.String), count(java.lang.String)

我怎样才能解决这个问题?

最佳答案

plugin documentation指出:

Note: groupId, artifactId, version, and packaging should always be set directly on the pom object.



将这些属性从project上移到某个级别是否会有所不同?

关于java - 如何使用变量使用Gradle创建pom.xml文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19132104/

相关文章:

java - 如何在Java中打印长原语

java - 单线程 Java 应用程序 - htop 显示 14 行

maven - Apache Felix Maven 插件不工作

java - OSGI 包中的依赖关系出现问题

java - Gradle - 基于 XSLT 的 Java 代码生成

java - 我们应该什么时候使用 "public static final String"?

tomcat - 使用 Maven3 Eclipse 7 Tomcat 7 出现 404 错误的 WebServlet

java - 如何在gradle Springboot REST应用程序中将heroku连接到mongodb?

kotlin - Intellij上的JDK14

java - 从 scriptlet 转换为 JSF 托管 bean 问题