0

pom.xml引数として渡されたデータ (groupId、artifactId、version) を含むファイルを作成する Gradle 関数を作成したいと考えています。

次のスクリプトを作成しました。

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)

どうすればこれを修正できますか?

4

2 に答える 2

0

文字列変数の解決には、二重引用符を使用します。

groupId "$groupId"
artifactId "$artifactId"
version "$version"

...

}.writeTo("$mainDir/pom.xml");
于 2013-12-07T21:35:37.003 に答える
0

プラグインのドキュメントには次のように記載されています。

注: groupIdartifactIdversion、およびpackagingは、常にオブジェクトに直接設定する必要がありpomます。

これらのプロパティを から 1 つ上のレベルに移動するとproject、違いが生じますか?

于 2013-10-05T11:49:13.863 に答える