2

依存関係を含まない pom ファイルを生成したい。以下のコードを使用して依存関係をクリアしようとしましたが、依存関係は生成された pom にまだリストされています。

install.doFirst {
    repositories.mavenInstaller {
        pom.dependencies.clear()
    }
}

これが必要な理由: pom ファイルを「自家製」サービスにアップロードするときに jar に含める必要がありますが、依存関係のバージョンとして「+」を読み取るとサービスが失敗します (私は動的を使用しています)依存関係)。

4

2 に答える 2

7
uploadArchives {
    repositories {
        mavenDeployer {
            // Do not write any dependencies into the POM
            pom*.whenConfigured { pom -> pom.dependencies.clear() }                 
        }
    }
}  
于 2015-03-27T05:58:59.123 に答える
0

私は以下のソリューションを使用して終了しましたgradle cleanPom。基本的に、XML パーサーを使用して、生成された POM を編集します。

apply plugin: 'maven'

pomFileLocation="build/poms/noDeps.pom"

/**
 * Creates pom with dependencies
 */
task writeNewPom << {
    pom {}.writeTo(pomFileLocation)
}

/**
 * Reads and Overwrites POM file removing dependencies
 */
task cleanPom(dependsOn: writeNewPom) << {
    def xml = new XmlParser().parse(pomFileLocation)
    def nodes = []
    xml.dependencies[0].each {
        nodes.add(it)
    }
    def parrent = nodes.first().parent()
    nodes.each {
        parrent.remove(it)
    }
    new XmlNodePrinter(new PrintWriter(new FileWriter(pomFileLocation))).print(xml)
}
于 2013-06-26T16:25:40.863 に答える