0

プロジェクトの直接的な依存関係、基本的にはPOMの実行時とコンパイル時の依存関係、および推移的な依存関係を解決しようとしています。このために、次のコードがあります

public class GetDirectDependencies
{

public static void main( String[] args )
    throws Exception
{
    System.out.println( "------------------------------------------------------------" );
    System.out.println( GetDirectDependencies.class.getSimpleName() );

    RepositorySystem system = Booter.newRepositorySystem();

    RepositorySystemSession session = Booter.newRepositorySystemSession( system );

    Artifact artifact = new DefaultArtifact( "org.eclipse.aether:aether-impl:1.0.0.v20140518" );

    ArtifactDescriptorRequest descriptorRequest = new ArtifactDescriptorRequest();
    descriptorRequest.setArtifact( artifact );
    descriptorRequest.setRepositories( Booter.newRepositories( system, session ) );

    ArtifactDescriptorResult descriptorResult = system.readArtifactDescriptor( session, descriptorRequest );

    for ( Dependency dependency : descriptorResult.getDependencies() )
    {
        System.out.println( dependency );
    }
}

}

これは正しく機能しますが、依存関係の「解決済み」リストを取得するにはどうすればよいですか。この解決済みのアーティファクトをローカル リポジトリにダウンロードできるようにする必要があります。基本的に、ローカル ディスク上の jar にアクセスできるリストを返す必要があります。

4

1 に答える 1

1

jar ファイルとその jar への物理パスが必要な場合は、それを「解決」する必要があります。私は次の方法でそれを達成しました:

Artifact artifact = new DefaultArtifact( "org.eclipse.aether:aether-util:1.0.0.v20140518" );

    ArtifactRequest artifactRequest = new ArtifactRequest();
    artifactRequest.setArtifact( artifact );
    artifactRequest.setRepositories( Booter.newRepositories( system, session ) );

    ArtifactResult artifactResult = system.resolveArtifact( session, artifactRequest );

    artifact = artifactResult.getArtifact();
To get the file:
    artifact.getFile();
于 2015-04-24T15:02:45.887 に答える