2017-02-14 13 views
0

私のアプリケーションでは、ローカルMavenリポジトリの 'ビュー'を取得したいと考えています。アプリケーションは別のJavaアプリケーションを(ProcessBuilder経由で)起動するために使用され、ユーザーはクラスパスにライブラリを追加/置換できます。これの一部は、後続のクラスパスで使用できるユーザーのローカルMavenリポジトリ内の成果物のビューを提供します。ローカルMavenリポジトリのJavaランタイムクエリ

M2_HOMEの設定を指定すると、settings.xmlを取得できます。ローカルのMavenリポジトリが格納されているディレクトリ(<localRepository>)から取得できます。

私は、ファイルのパスとファイル名からgroupIdartifactIdversionpackagingなどを決定し、ユーザーのローカルのMavenリポジトリにある瓶、POMSなどを取得するには、ファイルシステムの問い合わせを行うことができます。

しかし、私は、mavenの機構を通じてこれを行うための範囲があるかどうか、つまりmavenライブラリを使用しているかどうか疑問に思っています。可能であれば、それは私に、これを行う正しい/巧妙な方法であると私を訴えます。

答えて

0

は、

  1. RepositorySystemとLegacyRepositorySystemクラス
  2. RepositorySystem ArtifactRepository createLocalRepository(File localRepository)方法の行を次のように

    <dependency> 
        <groupId>org.apache.maven</groupId> 
        <artifactId>maven-core</artifactId>  
    </dependency> 
    <dependency> 
        <groupId>org.apache.maven</groupId> 
        <artifactId>maven-embedder</artifactId> 
    </dependency> 
    <dependency> 
        <groupId>org.apache.maven</groupId> 
        <artifactId>maven-compat</artifactId> 
    </dependency> 
    

    何かを次のMavenの依存関係を見てください。

  3. ローカルリポジトリが$ {はuser.dir}以外に設定されている場合は、まだあなたのローカルMavenのインストールのconfを検査する必要があるかもしれません

/。平方メートル


私はちょうどそれが得られないことを認識しています完全なアーティファクトのビュー。あなたは次のことを確認することができ、

  1. org.apache.maven.index.Scanner
  2. org.apache.maven.index.DefaultScanner

は、これはおそらく、日食Mavenのリポジトリ・ビューで使用されています。どのように `ArtificactRepository`は、それがすでに含まれている` Artifact`sのビューを提供していますか?

enter image description here

+0

に、以下を参照してください。 – amaidment

+0

私は答えようとしました。 – GauravJ

関連する問題