2015-02-06 3 views
4

Каков последний способ разрешить Артефакт в плагине Maven 3.2.5. ArtifactResolver и ArtifactFactory (обесценены) находятся в библиотеке сопоставлений, что подразумевает, что существует более новый/лучший способ разрешения, но я не могу найти никаких примеров, документов или поисковых запросов, которые не используют вышеуказанное.Для плагина Maven 3, что является последним способом разрешения артефакта

Благодаря

Майкл

ответ

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

+0

@khmarbaise, только для вас .... – DB5

+0

У меня есть использовал этот пример кода в версии 3.0.5, и он отлично работает. Если я использую 3.2.5, я получаю всевозможные проблемы класса, один из которых - java.lang.NoClassDefFoundError: org.sonatype.aether.artifact.Artifact Я где-то читал, не уверен, где, где работает maven затмение эфира вместо эфира сонатипа. Не уверен, какое влияние это оказывает на мои зависимости и импорт. –

Смежные вопросы