1. ホーム
  2. maven-2

[解決済み】MavenのアーティファクトとgroupIdの命名について

2022-03-26 21:46:10

質問

現在、あるプロジェクトをAntからMavenに移行している最中です。私は適合主義者なので、以下を見つけるために確立された規約を使いたいと思っています。 groupIdartifactId が、詳しい規約が見当たらない(あるにはあるのですが、私が疑問に思っている点をカバーしていない)。

このプロジェクトを例にとると、まずJavaのパッケージ。 com.mycompany.teatimer

ティータイマー は本当は2つの単語なのですが、Javaのパッケージ命名規則でアンダースコアやハイフンの挿入が禁止されているため、まとめて書いています。

を選びました。 groupId と思うので、パッケージIDと同一。そうなんですか?

最後に artifactId 現在、私は teatimer . しかし、他のMavenプロジェクトを見ると、ハイフンを使って単語を分割し artifactId のように、このように tea-timer . しかし、これは以下のように連結されると奇妙に見えます。 groupId : com.mycompany.teatimer.tea-timer .

どうやるんですか?

別の例

パッケージ名です。 com.mycompany.awesomeinhouseframework

groupId : com.mycompany.awesomeinhouseframework (?)

artifactId : awesome-inhouse-framework (?)

解決方法は?

あなたの規約は合理的であるように思えます。もし私がMavenレポであなたのフレームワークを探すとしたら、次のものを探すでしょう。 awesome-inhouse-framework-x.y.jarcom.mycompany.awesomeinhouseframework のグループディレクトリを作成します。そして、あなたの慣習に従って、そこで見つけることになります。

2つのシンプルなルールが私には有効です。

  • groupId (これは非常にユニークなので) のための reverse-domain-packages に、すべての 制約事項 Javaパッケージ名に関する
  • プロジェクト名を artifactId とする(jar-name friendly であること、つまり、ファイル名として無効な文字や奇妙に見える文字を含まないことに注意する)。