Maven アーティファクト (groupId:artifactId:version) が与えられた場合、その依存関係をプログラムで照会するにはどうすればよいですか? (実際にアーティファクトを取得する必要はなく、依存関係情報だけを取得する必要があります。)
編集して追加これを Maven プラグインの外で行いたいのですが、依存関係グラフを作成したいと思います。
Maven プラグイン (つまり、AbstractMojo の拡張) を使用している場合は、次のことができます。
/**
* @parameter expression="${project}"
*/
private org.apache.maven.project.MavenProject mavenProject;
List<org.apache.maven.model.Dependency> depmgtdeps = mavenProject.getDependencyManagement().getDependencies();
これにより、検出された実際の依存オブジェクトが得られます。MavenProject クラスには、さまざまな pom 関連のものを読み取るための他のメソッドも多数あります。ただし、これがプラグインの外で機能するとは思わないか、少なくとも、それを試みたことはありません。
これらの2つのリンクは役に立ちました..
次の groovy スクリプトは、ivyを使用して依存関係を解決します。
import groovy.xml.NamespaceBuilder
// Main program
// ============
def ant = new AntBuilder()
def ivy = NamespaceBuilder.newInstance(ant, "antlib:org.apache.ivy.ant")
ivy.resolve(
inline:true,
keep:true,
conf:"default",
organisation:"org.springframework",
module:"spring-core",
revision:"3.1.1.RELEASE",
)
ivy.report(toDir:"reports")
HTML レポートと graphml ファイルを生成します。
|-- report.groovy
|-- reports
| |-- ivy-report.css
| |-- org.springframework-spring-core-caller-default.graphml
| `-- org.springframework-spring-core-caller-default.html