0

既存の Java プロジェクトがあります。これはMavenプロジェクトです。他のプロジェクトで再利用するために、ローカルの Maven リポジトリに追加したいと考えています。

MyUtilityClass.jar
MyUtilityClassSources.jar
MyUtilityClassDocs.jar

に応じて

slf4j-1.7.2.jar
junit-4.11.jar

This SO Question/Answerは、mvn install:install-file を使用して単一のファイルをローカルの Maven リポジトリに追加する手順を示しています。

This SO Question/Answerでは、mvn deploy-file を使用してソース、javadoc などの jar のグループを追加する手順を示します。

This SO Question/Answerは、 pom.xml ファイルを介して依存関係を指定することをほのめかしていますが、詳細は提供していません。

達成したいタスクが 2 つあります。

  1. MyUtilityClass のプロジェクトをローカル リポジトリに追加し、ソース、ドキュメント、依存関係をプルすると自動的に追加されます。

  2. 最新かつ最高のバンドルをローカル リポジトリに追加する MyUtilityClass プロジェクトの Maven タスクを作成したいと考えています。

IDE として Eclipse を使用し、Maven バージョン 3.0.4 を使用しています。このプロジェクトの POM は次のようになります。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>
  <groupId>com.local.mine</groupId>
  <artifactId>MyUtilityClass</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>MyUtilityClass</name>
  <url>http://maven.apache.org</url>

  <dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.11</version>
    </dependency>
    <dependency>
        <groupId>com.local.mine</groupId>
        <artifactId>slf4j</artifactId><!--from local repo -->
        <version>1.7.2</version>
    </dependency>
    <dependency>
        <groupId>com.local.mine</groupId>
        <!--from local repo and shouldn't be automatically added -->
        <!-- to projects that reuse the resulting bundle -->
        <artifactId>log4j</artifactId>
     <version>1.2.17</version>
    </dependency>
  </dependencies>
</project>
4

2 に答える 2

1

これを行う最も簡単な方法は、各プロジェクトを独自のリリース サイクルと考えることです。それらは互いに独立している必要があります。

あなたが発見したように、あなたはすることができます

  • install を使用してアーティファクトをローカル リポジトリにインストールします。
  • install-file を使用して、セカンダリ アーティファクトをローカル リポジトリにインストールします。
  • install(-file) と同じ手順で deploy を使用しますが、リモート リポジトリにデプロイします。

これを行うのはリリースプラグインです。release:prepare と release:perform のペアの目標を実行すると、最終的には次のようになります。

  • pom ファイルのバージョン値の更新
  • バージョン管理タグが作成されました
  • インストールおよびデプロイされたアーティファクト
  • デプロイされたソースおよび/または javadoc アーティファクト

使用したいのはリリース プラグインです。

于 2013-06-16T07:16:43.813 に答える