1

私はMavenを初めて使用し、最近開発を開始したプロジェクトでMavenから始めることにしました。このプロジェクトは、自然言語で記述された単位変換クエリを解析し、自然言語クエリから解釈された単位変換を実行する Java ライブラリです。

このプロジェクトでは、Java 用の語形変化ライブラリ (複数形/単数形の単語) が必要でした。いくつかのオプションを熟考した後、独自のライブラリを開発することにしました。この抑揚機能を単独で使用することに、一部の人々から関心が寄せられていることがわかりました。

問題は、変曲機能を提供するクラス (単位変換プロジェクト内の別のパッケージにある) を別の新しい Maven プロジェクトに分割し、この変曲ライブラリをある種の公開 Maven リポジトリに公開するための最良のアプローチは何かということです。 、そしてそれを私の単位変換ライブラリの依存関係として指定します。このように、変曲ライブラリを使用したい人は誰でも、自分のプロジェクトの依存関係として配置することで使用できます。

私の質問には、「他のプロジェクトの依存関係になるように、自分のライブラリを Maven リポジトリに公開する」という部分が含まれていることに注意してください。私はMavenにまったく慣れていないので、全体を把握していません。私は、自分のプロジェクト、ビルド、実行などの依存関係を設定することに自分自身を制限しているだけです。

4

1 に答える 1

1

オープンソースの場合:

  • ソースコードを利用できるようにします(例:sourceforge.net)
  • POMが以下から(直接的または間接的に)継承していることを確認してください。

  <parent>
    <groupId>org.sonatype.oss</groupId>
    <artifactId>oss-parent</artifactId>
    <version>7</version>
  </parent>

クローズドソースの場合:

  • NexusなどのMavenリポジトリマネージャーをセットアップする
    • ターゲットオーディエンスがパブリックグループを利用できることを確認します
  • Mavenリリースプラグインを構成します:https ://maven.apache.org/plugins/maven-release-plugin/

一般的な推奨事項:

  • パッケージ名の場合は、逆のドメイン名で始まります。
    • org.myproject.mycomponent(このプロジェクトのカスタムドメインがある場合)
    • com.mycompany.myproject.mycomponet(会社がドメインmycompany.comを所有している場合)
    • net.sourceforge.myproject.mycomponent(myproject.sourceforge.netでソースコードをホストしていて、カスタムドメインがない場合)
  • groupId:
    • com.mycompany.myprojectなどのパッケージ名の先頭を使用します
    • 通常、単一のVCSリポジトリ内のすべてのMavenプロジェクトに同じgroupIdを使用します
  • ArtifactId:jarのファイル名の先頭になるため、十分に一意であることを確認してください(例:mycompany-myproject-mycomponent)
  • JenkinsなどのCIサーバーをセットアップする
    • CIサーバーが専用のシステムユーザーによって実行されていることを確認してください
    • CIユーザーのsettings.xmlファイルに必要な資格情報を追加します
    • 「クリーンインストール」用のジョブを構成します
    • ライブラリをリリースするためのジョブを構成します(JenkinsにはMavenリリースをサポートするための特別なプラグインがあります)
  • jarをOSGiバンドルに変えることを検討してください
于 2012-05-11T19:21:44.270 に答える