下面列出了org.slf4j.helpers.NOPLoggerFactory#org.apache.maven.repository.internal.MavenRepositorySystemUtils 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void setUpProject(File pomFile, AbstractMojo mojo) throws Exception {
super.setUp();
MockitoAnnotations.initMocks(this);
ProjectBuildingRequest buildingRequest = mock(ProjectBuildingRequest.class);
buildingRequest.setResolveDependencies(true);
when(session.getProjectBuildingRequest()).thenReturn(buildingRequest);
DefaultRepositorySystemSession repositorySession = MavenRepositorySystemUtils.newSession();
repositorySession.setLocalRepositoryManager(new SimpleLocalRepositoryManagerFactory()
.newInstance(repositorySession, new LocalRepository(RepositorySystem.defaultUserLocalRepository)));
when(buildingRequest.getRepositorySession()).thenReturn(repositorySession);
ProjectBuilder builder = lookup(ProjectBuilder.class);
ProjectBuildingResult build = builder.build(pomFile, buildingRequest);
MavenProject project = build.getProject();
project.getBuild().setOutputDirectory(new File( "target/test-classes").getAbsolutePath());
setVariableValueToObject(mojo, "project", project);
}
DependencyResolver() {
try {
ServiceLocator serviceLocator = createServiceLocator();
DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
session.setArtifactDescriptorPolicy(new SimpleArtifactDescriptorPolicy(false, false));
this.localRepositoryLocation = Files.createTempDirectory("metadata-validation-m2");
LocalRepository localRepository = new LocalRepository(this.localRepositoryLocation.toFile());
this.repositorySystem = serviceLocator.getService(RepositorySystem.class);
session.setLocalRepositoryManager(
this.repositorySystem.newLocalRepositoryManager(session, localRepository));
session.setReadOnly();
this.repositorySystemSession = session;
}
catch (Exception ex) {
throw new RuntimeException(ex);
}
}
private DefaultRepositorySystemSession createSession(Properties properties)
throws NoLocalRepositoryManagerException {
DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
LocalRepository repository = localRepository(properties);
session.setLocalRepositoryManager(
localRepositoryManagerFactory.newInstance(session, repository));
applySettings(session);
ProxySelector existing = session.getProxySelector();
if (existing == null || !(existing instanceof CompositeProxySelector)) {
JreProxySelector fallback = new JreProxySelector();
ProxySelector selector = existing == null ? fallback
: new CompositeProxySelector(Arrays.asList(existing, fallback));
session.setProxySelector(selector);
}
return session;
}
private List<String> getMavenParentDependencies(String parent)
throws DependencyResolutionException, ArtifactDescriptorException {
List<String> dependencies = new ArrayList<>();
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
RepositorySystem system = newRepositorySystem(locator);
RepositorySystemSession session = newSession(system);
RemoteRepository central = new RemoteRepository.Builder("central", "default", "http://repo1.maven.org/maven2/")
.build();
org.eclipse.aether.artifact.Artifact artifact = new DefaultArtifact(parent);
ArtifactDescriptorRequest request = new ArtifactDescriptorRequest(artifact, Arrays.asList(central), null);
try {
ArtifactDescriptorResult result = system.readArtifactDescriptor(session, request);
for (org.eclipse.aether.graph.Dependency dependency : result.getManagedDependencies()) {
dependencies.add(dependency.getArtifact().getGroupId() + ":" + dependency.getArtifact().getGroupId());
}
} catch (Exception e) {
logger.error(e.getMessage());
}
return dependencies;
}
public static RepositorySystem newRepositorySystem()
{
/*
* Aether's components implement org.eclipse.aether.spi.locator.Service to ease manual wiring and using the
* prepopulated DefaultServiceLocator, we only need to register the repository connector and transporter
* factories.
*/
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
locator.setErrorHandler(new DefaultServiceLocator.ErrorHandler()
{
@Override
public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable exception)
{
exception.printStackTrace();
}
});
return locator.getService(RepositorySystem.class);
}
private RepositorySystem newRepositorySystem() {
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
if (properties.isUseWagon()) {
locator.addService(WagonProvider.class, StaticWagonProvider.class);
locator.addService(WagonConfigurator.class, StaticWagonConfigurator.class);
locator.addService(TransporterFactory.class, WagonTransporterFactory.class);
} else {
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
}
locator.setErrorHandler(new DefaultServiceLocator.ErrorHandler() {
@Override
public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable exception) {
throw new RuntimeException(exception);
}
});
return locator.getService(RepositorySystem.class);
}
private DefaultRepositorySystemSession createSession(Properties properties)
throws NoLocalRepositoryManagerException {
DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
LocalRepository repository = localRepository(properties);
session.setLocalRepositoryManager(
this.localRepositoryManagerFactory.newInstance(session, repository));
applySettings(session);
ProxySelector existing = session.getProxySelector();
if (existing == null || !(existing instanceof CompositeProxySelector)) {
JreProxySelector fallback = new JreProxySelector();
ProxySelector selector = existing == null ? fallback
: new CompositeProxySelector(Arrays.asList(existing, fallback));
session.setProxySelector(selector);
}
return session;
}
public static RepositorySystem newRepositorySystem ()
{
final DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator ();
locator.addService ( RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class );
locator.addService ( TransporterFactory.class, FileTransporterFactory.class );
locator.addService ( TransporterFactory.class, HttpTransporterFactory.class );
locator.setErrorHandler ( new ErrorHandler () {
@Override
public void serviceCreationFailed ( final Class<?> type, final Class<?> impl, final Throwable exception )
{
final Logger logger = LoggerFactory.getLogger ( impl );
logger.warn ( "Service creation failed: " + type.getName (), exception );
}
} );
return locator.getService ( RepositorySystem.class );
}
public static RepositorySystem newRepositorySystem ()
{
final DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator ();
locator.addService ( RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class );
locator.addService ( TransporterFactory.class, FileTransporterFactory.class );
locator.addService ( TransporterFactory.class, HttpTransporterFactory.class );
locator.setErrorHandler ( new DefaultServiceLocator.ErrorHandler () {
@Override
public void serviceCreationFailed ( final Class<?> type, final Class<?> impl, final Throwable exception )
{
exception.printStackTrace ();
}
} );
return locator.getService ( RepositorySystem.class );
}
private static RepositorySystem newRepositorySystem()
{
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
//locator.setErrorHandler(new DefaultServiceLocator.ErrorHandler() {
// @Override
// public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable exception)
// {
// exception.printStackTrace();
// }
//});
return locator.getService(RepositorySystem.class);
}
static RepositorySystem newRepositorySystem(boolean supportRemote) {
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
if (supportRemote) {
locator.addService(TransporterFactory.class, org.eclipse.aether.transport.http.HttpTransporterFactory.class);
}
locator.setErrorHandler(new DefaultServiceLocator.ErrorHandler() {
@Override
public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable exception) {
exception.printStackTrace();
}
});
return locator.getService(RepositorySystem.class);
}
private RepositorySystem getRepositorySystem() {
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
locator.setErrorHandler(new DefaultServiceLocator.ErrorHandler() {
@Override
public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable exception)
{
LOG.error("ServiceLocator failed", exception);
}
});
return locator.getService(RepositorySystem.class);
}
/**
* Creates a new aether repository system session for the given directory and assigns the
* repository to this session.
*
* @param localRepoDir The repository directory
* @return The newly created session object.
*/
public static RepositorySystemSession newRepositorySystemSession(String localRepoDir) {
DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
LocalRepository repo = new LocalRepository(localRepoDir);
DependencySelector depFilter = new AndDependencySelector(new ExclusionDependencySelector());
session.setDependencySelector(depFilter);
SimpleLocalRepositoryManagerFactory repFactory = new SimpleLocalRepositoryManagerFactory();
try {
LocalRepositoryManager manager = repFactory.newInstance(session, repo);
session.setLocalRepositoryManager(manager);
} catch (NoLocalRepositoryManagerException e) {
log.error("Could not assign the repository manager to the session: {}", e.getMessage(), e);
}
return session;
}
public static RepositorySystem newRepositorySystem() {
/*
* Aether's components implement org.eclipse.aether.spi.locator.Service
* to ease manual wiring and using the prepopulated
* DefaultServiceLocator, we only need to register the repository
* connector and transporter factories.
*/
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
locator.setErrorHandler(new DefaultServiceLocator.ErrorHandler() {
@Override
public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable exception) {
exception.printStackTrace();
}
});
return locator.getService(RepositorySystem.class);
}
private RepositorySystem newRepositorySystem() {
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
locator.setErrorHandler(new DefaultServiceLocator.ErrorHandler() {
@Override
public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable exception) {
exception.printStackTrace();
}
});
return locator.getService(RepositorySystem.class);
}
private DefaultRepositorySystemSession newRepositorySystemSession(RepositorySystem system, File localRepoFile, Settings settings) {
DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
if (!settings.getMirrors().isEmpty()) {
DefaultMirrorSelector mirrorSelector = new DefaultMirrorSelector();
for (Mirror mirror : settings.getMirrors()) {
mirrorSelector.add(mirror.getId(), mirror.getUrl(), "default", true, mirror.getMirrorOf(), "*");
}
session.setMirrorSelector(mirrorSelector);
}
session.setProxySelector(proxySelector);
LocalRepository localRepo = new LocalRepository(localRepoFile);
session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepo));
return session;
}
public static RepositorySystem newRepositorySystem() {
/*
* Aether's components implement org.eclipse.aether.spi.locator.Service to ease manual wiring and using the
* prepopulated DefaultServiceLocator, we only need to register the repository connector and transporter
* factories.
*/
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
locator.setErrorHandler(new DefaultServiceLocator.ErrorHandler() {
@Override
public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable exception) {
LOG.error(exception.getMessage(), exception);
}
});
return locator.getService(RepositorySystem.class);
}
private MavenSession newSession(MavenProject project, File localrepo, Properties properties) throws Exception {
MavenExecutionRequest request = new DefaultMavenExecutionRequest();
MavenExecutionResult result = new DefaultMavenExecutionResult();
DefaultRepositorySystemSession repoSession = MavenRepositorySystemUtils.newSession();
LocalRepository localRepo = new LocalRepository(localrepo);
repoSession.setLocalRepositoryManager(mojos.getContainer().lookup(LocalRepositoryManagerFactory.class, "simple").newInstance(repoSession, localRepo));
MavenSession session = new MavenSession(mojos.getContainer(), repoSession, request, result);
List<MavenProject> projects = new ArrayList<>();
projects.add(project);
for (String module : project.getModules()) {
MavenProject moduleProject = readMavenProject(new File(project.getBasedir(), module), properties);
moduleProject.setParent(project);
projects.add(moduleProject);
}
session.setProjects(projects);
return session;
}
/**
* @param toPublish each {@link Artifact} must contain a file, that will be published under maven
* coordinates in the corresponding {@link Artifact}.
* @see Artifact#setFile
*/
public DeployResult publish(List<Artifact> toPublish) throws DeploymentException {
RepositorySystem repoSys = Objects.requireNonNull(locator.getService(RepositorySystem.class));
DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
session.setLocalRepositoryManager(repoSys.newLocalRepositoryManager(session, localRepo));
session.setReadOnly();
DeployRequest deployRequest = createDeployRequest(toPublish);
if (dryRun) {
return new DeployResult(deployRequest)
.setArtifacts(toPublish)
.setMetadata(deployRequest.getMetadata());
} else {
return repoSys.deploy(session, deployRequest);
}
}
public static ServiceLocator initServiceLocator() {
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.setErrorHandler(
new DefaultServiceLocator.ErrorHandler() {
@Override
public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable exception) {
throw new RuntimeException(
String.format(
"Failed to initialize service %s, implemented by %s: %s",
type.getName(), impl.getName(), exception.getMessage()),
exception);
}
});
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
// Use a no-op logger. Leaving this out would introduce a runtime dependency on log4j
locator.addService(ILoggerFactory.class, NOPLoggerFactory.class);
// Also requires log4j
// locator.addService(ILoggerFactory.class, Log4jLoggerFactory.class);
return locator;
}
private RepositorySystem createRepositorySystem() {
DefaultServiceLocator serviceLocator = MavenRepositorySystemUtils.newServiceLocator();
serviceLocator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
serviceLocator.addService(TransporterFactory.class, FileTransporterFactory.class);
serviceLocator.addService(TransporterFactory.class, HttpTransporterFactory.class);
serviceLocator.setErrorHandler(new DefaultServiceLocator.ErrorHandler() {
@Override
public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable exception) {
throw new RuntimeException(exception);
}
});
return serviceLocator.getService(RepositorySystem.class);
}
private RepositorySystem newRepositorySystem() {
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
RepositorySystem system = locator.getService(RepositorySystem.class);
return system;
}
private static RepositorySystem newRepositorySystem() {
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
return locator.getService(RepositorySystem.class);
}
private RepositorySystem createRepositorySystem() {
DefaultServiceLocator serviceLocator = MavenRepositorySystemUtils.newServiceLocator();
serviceLocator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
serviceLocator.addService(TransporterFactory.class, FileTransporterFactory.class);
serviceLocator.addService(TransporterFactory.class, HttpTransporterFactory.class);
serviceLocator.setErrorHandler(new DefaultServiceLocator.ErrorHandler() {
@Override
public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable exception) {
throw new RuntimeException(exception);
}
});
return serviceLocator.getService(RepositorySystem.class);
}
private RepositorySystem newRepositorySystem() {
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(WagonConfigurator.class, PlexusWagonConfigurator.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
return locator.getService(RepositorySystem.class);
}
private RepositorySystemSession newSession(RepositorySystem system) {
DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
String home = System.getenv("HOME");
LocalRepository localRepo = new LocalRepository(new File(home, ".m2/repository"));
session.setLocalRepositoryManager(system.newLocalRepositoryManager(session, localRepo));
return session;
}
private static ServiceLocator createServiceLocator() {
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositorySystem.class, DefaultRepositorySystem.class);
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, DependencyResolver.JarSkippingHttpTransporterFactory.class);
return locator;
}
private RepositorySystem newRepositorySystem() {
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
return locator.getService(RepositorySystem.class);
}
public static RepositorySystemSession newRepositorySession(final RepositorySystem repoSystem,
Path path, RepositoryListener listener, ProxySelector proxySelector, boolean offline) {
final DefaultRepositorySystemSession session = MavenRepositorySystemUtils.newSession();
session.setRepositoryListener(listener);
session.setOffline(offline);
final LocalRepository localRepo = new LocalRepository(path.toString());
session.setLocalRepositoryManager(repoSystem.newLocalRepositoryManager(session, localRepo));
if (proxySelector != null) {
session.setProxySelector(proxySelector);
}
return session;
}
public static RepositorySystem newRepositorySystem() {
DefaultServiceLocator locator = MavenRepositorySystemUtils.newServiceLocator();
locator.addService(RepositoryConnectorFactory.class, BasicRepositoryConnectorFactory.class);
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
return locator.getService(RepositorySystem.class);
}