2

「 Gradle dependencyManagement 」で説明されている問題に遭遇しました。「POM pom-default.xml を初期化できません: プロジェクトの POM を検証できませんでした」というのは、ディレクトリ構造が次のとおりであるためです。

事業
     組み立て
     mbean 共通
     webapps/e2am

したがって、次のような settings.gradle ファイルがあります。

rootProject.name = 'e2am-parent' include "mbean-common", "webapps/e2am", "assembly"

そして、デフォルトで「gradle clean install」を実行したときにgradleによって生成されたpom-default.xmlは、「webapps/e2am」のartifactIdを作成します。

    <groupId>com.e2open.platform</groupId>
    <artifactId>webapps/e2am</artifactId>
    <version>9.0-SNAPSHOT</version>

「/」は明らかに許可されていません(ファイルを削除して mvn help:effective-pom を実行すると、「/」があると鳴き、「/」を削除すると成功するため)

artifactId に 'webapps/e2am' を使用しないように gradle に指示するにはどうすればよいですか? つまり、デフォルトの artifactId 名を上書きするにはどうすればよいですか? 「gradle override artifactId」をグーグルで検索しましたが、正しいレシピが見つからないようです...

私はJavaプラグインとMavenプラグインを使用しているので、gradleは「クリーンインストール」が何をすべきかを「知っている」ので、この時点ではアーカイブにアップロードしていないので、アーカイブへのアップロードに関連することがわかった解決策は無関係。

Maven pom ファイルでは groupId、ArtifactID、および version を指定できるのに、build.gradle では、artifactId 名を制御できず、グループとバージョンだけを制御できるのは奇妙に思えます。

4

1 に答える 1

5

http://www.gradle.org/docs/current/userguide/maven_plugin.htmlの Maven POM 生成 (52.6.4) に関するセクションでproject.archivesBaseNameは、目的の値に設定することで問題を解決できるはずであることが示唆されています。アーティファクト ID のデフォルトはそれです。

于 2013-09-17T15:35:41.843 に答える