如何在org.apache.maven.AbstractMavenLifecycleParticipant中使用乙醚
我遵循此示例将所需的依赖项注入到AbtractMavenLifecyleParticipant中:如何在org.apache.maven.AbstractMavenLifecycleParticipant中使用乙醚,maven,maven-3,maven-plugin,aether,Maven,Maven 3,Maven Plugin,Aether,我遵循此示例将所需的依赖项注入到AbtractMavenLifecyleParticipant中: “afterProjectsRead”的调用非常完美,但repoSystem、repoSession和remoteRepos始终为“null” 如何从AbstractMavenLifecyleParticipant中获取这些对象 import org.apache.maven.AbstractMavenLifecycleParticipant; import org.apache.mave
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);
}
}
import org.apache.maven.AbstractMavenLifecycleParticipant;
导入org.apache.maven.MavenExecutionException;
导入org.apache.maven.execution.MavenSession;
导入org.codehaus.plexus.component.annotations.component;
导入org.sonatype.ether.RepositorySystem;
导入org.sonatype.ether.RepositorySystemSession;
导入org.sonatype.ether.repository.RemoteRepository;
@组件(role=AbstractMavenLifecycleParticipant.class,hint=“skipper”)
公共类模块KipperLifecycleParticipant扩展了AbstractMavenLifecycleParticipant{
/**
*@组件
*/
私人回购系统;
/**
*@parameter default value=“${repositorySystemSession}”
*@readonly
*/
私有RepositorySystemSession reposition;
/**
*@parameter default value=“${project.remotePluginRepositories}”
*@readonly
*/
私人回购;
@凌驾
public void afterProjectsRead(MavenSession会话)抛出MavenExecutionException{
super.afterProjectsRead(会议);
System.out.println(“repoSession:+repoSession”);
System.out.println(“repoSystem:+repoSystem”);
System.out.println(“remoteRepos:+remoteRepos”);
}
}
我们就是这样做的:
final File repo=this.session.getLocalRepository().getBasedir();
最终收集deps=new-ether(this.getProject(),repo).resolve(
新的DefaultArtifact(“junit”、“junit dep”、“jar”、“4.10”),
JavaScopes.RUNTIME
);
也许你可以直接使用这个库,而不是自己编写它。我们就是这样做的:
final File repo=this.session.getLocalRepository().getBasedir();
最终收集deps=new-ether(this.getProject(),repo).resolve(
新的DefaultArtifact(“junit”、“junit dep”、“jar”、“4.10”),
JavaScopes.RUNTIME
);
也许你可以直接使用这个库,而不是自己编写它。看起来不错,第一个测试似乎很有效-我会给它一个更详细的测试。现在非常感谢!!!!!虽然我不打算使用这个库,但它给了我正确的提示-谢谢!这看起来很好,第一个测试似乎有效-我将对它进行更详细的测试。现在非常感谢!!!!!虽然我不打算使用这个库,但它给了我正确的提示-谢谢!
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
);