20

私のチームはMavenを初めて使用しますが、プロジェクトのartifactIDを選択するための明確なガイダンスを見つけることができませんでした。

命名規則のガイドには、artifactIDは

「小文字で奇妙な記号のない名前なら何でも」

しかし、私のグループの一部の人々は、groupIDartifactIDの両方に逆ドメイン名スタイルを使用したいと考えています。

上記のガイドラインに加えて、中央リポジトリで見たすべての例に基づいて、逆ドメインスタイルのartifactIDを使用することは意味がないと思いますが、それが実際に無効であるか、単に嫌われているかはわかりません。 。さまざまなリポジトリマネージャがピリオド(。)文字を含むartifactIDを効果的に処理できないことについて何かを読んだことを漠然と覚えていますが、それをどこで読んだか覚えておらず、今は見つかりません。

MavenのartifactIDで許可されている文字に関するルールがある場合、それは何ですか?

4

2 に答える 2

23

ここでの始まりとして、この主題を扱っているいくつかの投稿:

ポインタ

そしてスタックオーバーフローで!

次に、artifactIdでgroupIdを使用しないことをお勧めします。これは冗長です;)。

私はあなたの質問に最も関連があると思われるソナタイプのドキュメントを引用します:

ソナタイプの命名規則

groupIdは、すべてのプロジェクトでプロジェクトを一意に識別するため、命名スキーマを適用する必要があります。パッケージ名のルールに従う必要があります。つまり、少なくとも管理するドメイン名と同じである必要があり、必要な数のサブグループを作成できます。例えば。org.apache.maven、org.apache.commons groupIdの粒度を判断する良い方法は、プロジェクト構造を使用することです。つまり、現在のプロジェクトが複数モジュールプロジェクトの場合、親のgroupIdに新しい識別子を追加する必要があります。例えば。org.apache.maven、org.apache.maven.plugins、org.apache.maven.reporting

ArtifactIdは、バージョンなしのjarの名前です。作成した場合は、小文字を使用し、奇妙な記号を使用せずに、任意の名前を選択できます。サードパーティのjarファイルの場合は、配布されたjarファイルの名前を使用する必要があります。Maven、Commons-Math

バージョンを配布する場合は、数字とドット(1.0、1.1、1.0.1、...)のある一般的なバージョンを選択できます。通常、SNAPSHOT(ナイトリー)ビルドに関連付けられている日付は使用しないでください。サードパーティのアーティファクトである場合は、バージョン番号を使用する必要があります。見た目は奇妙です。2.0、2.0.1、1.3.1

したがって、groupIdで逆引きDNSを使用し、パッケージ名を使用することをお勧めします。ArtifactIdでそれらを再度使用することはできません。

于 2012-08-18T17:42:18.887 に答える
4

groupIdはJavaのパッケージ名に似ており、artifactIdはクラス名に似ていますが(実際にはそうではありません)、クラス名には関係があると思います。Mavenでは通常、モジュール/プロジェクトに名前を付けます。これは特にartifactIdです。

さらに、artifactIdに関するいくつかのヒントをここで見つけました。

于 2012-08-18T10:17:53.907 に答える