2012-08-27 5 views
1

org.apache.maven.AbstractMavenLifecycleParticipant에서 오드를 사용하는 방법 :필요한 의존성이 내 AbtractMavenLifecyleParticipant에 주입 얻을 나는이 예제를 따라

'afterProjectsRead'는 완벽하게 호출되지만 repoSystem, repoSession 및 remoteRepos는 항상 null입니다. '.

AbstractMavenLifecyleParticipant 내에서 이러한 객체를 유지하려면 어떻게해야합니까?

import org.apache.maven.AbstractMavenLifecycleParticipant; 
import org.apache.maven.MavenExecutionException; 
import org.apache.maven.execution.MavenSession; 
import org.codehaus.plexus.component.annotations.Component; 
import org.sonatype.aether.RepositorySystem; 
import org.sonatype.aether.RepositorySystemSession; 
import org.sonatype.aether.repository.RemoteRepository; 

@Component(role = AbstractMavenLifecycleParticipant.class, hint = "skipper") 
public class ModuleSkipperLifecycleParticipant extends AbstractMavenLifecycleParticipant { 

    /** 
    * @component 
    */ 
    private RepositorySystem repoSystem; 

    /** 
    * @parameter default-value="${repositorySystemSession}" 
    * @readonly 
    */ 
    private RepositorySystemSession repoSession; 

    /** 
    * @parameter default-value="${project.remotePluginRepositories}" 
    * @readonly 
    */ 
    private List<RemoteRepository> remoteRepos; 

    @Override 
    public void afterProjectsRead(MavenSession session) throws MavenExecutionException { 
     super.afterProjectsRead(session); 

     System.out.println("repoSession: " + repoSession); 
     System.out.println("repoSystem: " + repoSystem); 
     System.out.println("remoteRepos: " + remoteRepos); 

    } 
} 

답변

1

이것은 우리가 jcabi-aether에서 그것을 할 방법은 다음과 같습니다

final File repo = this.session.getLocalRepository().getBasedir(); 
final Collection<Artifact> deps = new Aether(this.getProject(), repo).resolve(
    new DefaultArtifact("junit", "junit-dep", "", "jar", "4.10"), 
    JavaScopes.RUNTIME 
); 

어쩌면 당신은 그냥 대신 직접 작성하는 라이브러리를 사용할 수 있습니다 ..

멋지다
+0

, 첫 번째 테스트가 보인다 더 상세한 테스트를 해보겠습니다. 많은 감사합니다 지금 !!!!! – domi

+0

비록이 라이브러리를 gona로 사용하지는 않지만 정확한 힌트를주었습니다 - 감사합니다! – domi

+0

당신은 환영합니다 :) – yegor256

관련 문제