我想写一个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)
我该如何解决这个问题?
答案 0 :(得分:0)
注意:
groupId
,artifactId
,version
和packaging
应始终直接在pom
对象上设置。
将这些属性从project
中移出一个级别会有所作为吗?
答案 1 :(得分:0)
对于字符串变量解析,请使用双引号:
groupId "$groupId"
artifactId "$artifactId"
version "$version"
...
}.writeTo("$mainDir/pom.xml");