4
在Maven 3.2.5插件中解析工件的最新方式是什麼? ArtifactResolver和ArtifactFactory(折舊)位於compat庫中,這意味着有一種更新/更好的解決方法,但我找不到任何示例,文檔或搜索不使用上述方法。對於Maven 3插件什麼是解決工件的最新方法
感謝
邁克爾
在Maven 3.2.5插件中解析工件的最新方式是什麼? ArtifactResolver和ArtifactFactory(折舊)位於compat庫中,這意味着有一種更新/更好的解決方法,但我找不到任何示例,文檔或搜索不使用上述方法。對於Maven 3插件什麼是解決工件的最新方法
感謝
邁克爾
有來自Sonatype的一個博客上的正是這一點:
http://blog.sonatype.com/2011/01/how-to-use-aether-in-maven-plugins
這是從博客條目的代碼(全部細節顯然有描述):
public MyMojo extends AbstractMojo {
/**
* The entry point to Aether, i.e. the component doing all the work.
*/
@Component
private RepositorySystem repoSystem;
/**
* The current repository/network configuration of Maven.
*/
@Parameter(defaultValue = "${repositorySystemSession}", readonly = true)
private RepositorySystemSession repoSession;
/**
* The project's remote repositories to use for the resolution of plugins and their dependencies.
*/
@Parameter(defaultValue = "${project.remotePluginRepositories}", readonly = true)
private List<RemoteRepository> remoteRepos;
public void execute() throws MojoExecutionException, MojoFailureException {
ArtifactRequest request = new ArtifactRequest();
request.setArtifact(new DefaultArtifact("org.apache.maven:maven-model:3.0"));
request.setRepositories(remoteRepos);
ArtifactResult result = repoSystem.resolveArtifact(repoSession, request);
}
}
然後,您可以使用result.getArtifact()
獲取工件,並使用result.getArtifact().getFile()
獲取工件的文件(如果需要)。
請使用註釋而不是xdoclet了:http://maven.apache.org/plugin-tools/maven-plugin-tools-annotations/index.html – khmarbaise 2015-02-06 08:48:23
@khmarbaise,只爲你.... – DB5 2015-02-06 10:13:53
我有一直在3.0.5使用這個示例代碼,它完美的工作。如果我運行使用3.2.5我得到各種類的問題,其中之一是java.lang.NoClassDefFoundError:org.sonatype.aether.artifact.Artifact 我確實讀過某處,不知道在哪裏,該maven正在運行日蝕乙醚,而不是sonatype乙醚。不知道這對我的依賴和導入有什麼影響。 – 2015-02-06 10:21:31