2015-02-06 36 views

回答

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()獲取工件的文件(如果需要)。

+0

請使用註釋而不是xdoclet了:http://maven.apache.org/plugin-tools/maven-plugin-tools-annotations/index.html – khmarbaise 2015-02-06 08:48:23

+0

@khmarbaise,只爲你.... – DB5 2015-02-06 10:13:53

+0

我有一直在3.0.5使用這個示例代碼,它完美的工作。如果我運行使用3.2.5我得到各種類的問題,其中之一是java.lang.NoClassDefFoundError:org.sonatype.aether.artifact.Artifact 我確實讀過某處,不知道在哪裏,該maven正在運行日蝕乙醚,而不是sonatype乙醚。不知道這對我的依賴和導入有什麼影響。 – 2015-02-06 10:21:31

相關問題