Java源码示例:org.jboss.shrinkwrap.resolver.api.maven.ConfigurableMavenResolverSystem
示例1
public static URL[] resolve(final MavenDependency dep) {
return CACHE.computeIfAbsent(dep, d -> {
final ConfigurableMavenResolverSystem resolver = Maven
.configureResolver()
.withClassPathResolution(true)
.workOffline(Boolean.getBoolean("talend.component.junit.maven.offline"));
REPOSITORIES.forEach(resolver::withRemoteRepo);
resolver.addDependency(dep);
return Stream.of(resolver.resolve().using(STRATEGY).asFile()).distinct().map(f -> {
try {
return f.toURI().toURL();
} catch (final MalformedURLException e) {
throw new IllegalStateException(e);
}
}).toArray(URL[]::new);
});
}
示例2
private static ArtifactResolvingHelper getResolvingHelper(final List<String> repos) {
final ConfigurableMavenResolverSystem resolver = Maven.configureResolver()
.withMavenCentralRepo(true)
.withRemoteRepo(MavenRemoteRepositories.createRemoteRepository("jboss-public-repository-group",
"https://repository.jboss.org/nexus/content/groups/public/",
"default")
.setChecksumPolicy(MavenChecksumPolicy.CHECKSUM_POLICY_IGNORE)
.setUpdatePolicy(MavenUpdatePolicy.UPDATE_POLICY_NEVER))
.withRemoteRepo(MavenRemoteRepositories.createRemoteRepository("redhat-ga",
"https://maven.repository.redhat.com/ga/",
"default")
.setChecksumPolicy(MavenChecksumPolicy.CHECKSUM_POLICY_IGNORE)
.setUpdatePolicy(MavenUpdatePolicy.UPDATE_POLICY_NEVER));
repos.forEach(r -> resolver.withRemoteRepo(MavenRemoteRepositories.createRemoteRepository(r, r, "default")
.setChecksumPolicy(MavenChecksumPolicy.CHECKSUM_POLICY_IGNORE)
.setUpdatePolicy(MavenUpdatePolicy.UPDATE_POLICY_NEVER)));
return new ShrinkwrapArtifactResolvingHelper(resolver);
}
示例3
@Override
public Integer call() throws Exception { // your business logic goes here...
System.out.println("Hello " + greeting);
ConfigurableMavenResolverSystem resolver = Maven.configureResolver()
.withRemoteRepo("jcenter", "https://jcenter.bintray.com/", "default")
.withMavenCentralRepo(false);
//System.setProperty("maven.repo.local", Settings.getLocalMavenRepo().toPath().toAbsolutePath().toString());
List<File> artifacts = resolver.resolve("log4j:log4j:1.2.17")
.using(new MavenResolutionStrategy() {
@Override
public TransitiveExclusionPolicy getTransitiveExclusionPolicy() {
return new TransitiveExclusionPolicy() {
@Override
public boolean allowOptional() {
return true;
}
@Override
public ScopeType[] getFilteredScopes() {
return new ScopeType[]{ScopeType.PROVIDED, ScopeType.TEST};
}
};
}
@Override
public MavenResolutionFilter[] getResolutionFilters() {
return new MavenResolutionFilter[0];
}
})
.asList(File.class);
artifacts.forEach(System.out::println);
return CommandLine.ExitCode.OK;
}
示例4
public List<File> resolveDependenciesViaAether(List<String> depIds, List<MavenRepo> customRepos,
boolean offline, boolean loggingEnabled) {
ConfigurableMavenResolverSystem resolver = Maven.configureResolver()
.withMavenCentralRepo(false)
.workOffline(offline);
customRepos.stream().forEach(mavenRepo -> {
mavenRepo.apply(resolver);
});
System.setProperty("maven.repo.local", Settings.getLocalMavenRepo().toPath().toAbsolutePath().toString());
return depIds.stream().flatMap(it -> {
if (loggingEnabled)
System.err.print(String.format("[jbang] Resolving %s...", it));
List<File> artifacts;
try {
artifacts = resolver.resolve(depIdToArtifact(it).toCanonicalForm())
.withTransitivity()
.asList(File.class); // , RUNTIME);
} catch (RuntimeException e) {
throw new ExitException(1, "Could not resolve dependency", e);
}
if (loggingEnabled)
System.err.println("Done");
return artifacts.stream();
}).collect(Collectors.toList());
}
示例5
static public MavenRepo toMavenRepo(String repoReference) {
String[] split = repoReference.split("=");
String reporef = null;
String repoid = null;
if (split.length == 1) {
reporef = split[0];
} else if (split.length == 2) {
repoid = split[0];
reporef = split[1];
} else {
throw new IllegalStateException("Invalid Maven repository reference: " + repoReference);
}
if (ALIAS_JCENTER.equalsIgnoreCase(reporef)) {
return new MavenRepo(Optional.ofNullable(repoid).orElse(ALIAS_JCENTER), REPO_JCENTER);
} else if (ALIAS_GOOGLE.equalsIgnoreCase(reporef)) {
return new MavenRepo(Optional.ofNullable(repoid).orElse(ALIAS_GOOGLE), REPO_GOOGLE);
} else if (ALIAS_REDHAT.equalsIgnoreCase(reporef)) {
return new MavenRepo(Optional.ofNullable(repoid).orElse(ALIAS_REDHAT), REPO_REDHAT);
} else if (ALIAS_JBOSS.equalsIgnoreCase(reporef)) {
return new MavenRepo(Optional.ofNullable(repoid).orElse(ALIAS_JBOSS), REPO_JBOSS);
} else if (ALIAS_MAVEN_CENTRAL.equalsIgnoreCase(reporef)) {
return new MavenRepo("", "") {
@Override
public void apply(ConfigurableMavenResolverSystem resolver) {
resolver.withMavenCentralRepo(true);
}
};
} else if (ALIAS_JITPACK.equalsIgnoreCase(reporef)) {
return new MavenRepo(Optional.ofNullable(repoid).orElse(ALIAS_JITPACK), REPO_JITPACK);
} else {
return new MavenRepo(repoid, reporef);
}
}
示例6
private static ArtifactResolvingHelper getResolvingHelper(final List<String> repos) {
final ConfigurableMavenResolverSystem resolver = Maven.configureResolver()
.withMavenCentralRepo(true)
.withRemoteRepo(MavenRemoteRepositories.createRemoteRepository("jboss-public-repository-group",
"http://repository.jboss.org/nexus/content/groups/public/",
"default")
.setChecksumPolicy(MavenChecksumPolicy.CHECKSUM_POLICY_IGNORE)
.setUpdatePolicy(MavenUpdatePolicy.UPDATE_POLICY_NEVER));
repos.forEach(r -> resolver.withRemoteRepo(MavenRemoteRepositories.createRemoteRepository(r, r, "default")
.setChecksumPolicy(MavenChecksumPolicy.CHECKSUM_POLICY_IGNORE)
.setUpdatePolicy(MavenUpdatePolicy.UPDATE_POLICY_NEVER)));
return new ShrinkwrapArtifactResolvingHelper(resolver);
}
示例7
private static ConfigurableMavenResolverSystem resolver(ITestConfig config) {
return Maven.configureResolver().workOffline(config.getMavenOfflineResolution());
}
示例8
public void apply(ConfigurableMavenResolverSystem resolver) {
resolver.withRemoteRepo(getId(), getUrl(), "default");
}
示例9
@SuppressWarnings("unchecked")
public Set<String> deploy(Archive<?> archive) {
Set<String> servletNames = new HashSet<>();
if (!archive.contains("WEB-INF/beans.xml")) {
archive.add(EmptyAsset.INSTANCE, "WEB-INF/beans.xml");
}
ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
try {
// Resolve all the dependencies that make up a Piranha runtime configuration
ConfigurableMavenResolverSystem mavenResolver = Maven.configureResolver();
configuration.getRepositoriesList().stream().forEach(repoUrl ->
mavenResolver.withRemoteRepo(createRepo(repoUrl)));
JavaArchive[] piranhaArchives =
mavenResolver
.workOffline(configuration.isOffline())
.resolve(configuration.getMergedDependencies())
.withTransitivity()
.as(JavaArchive.class);
// Make all those dependencies available to the Piranha class loader
ClassLoader piranhaClassLoader = getPiranhaClassLoader(piranhaArchives);
// Make the web application archive (the .war) available to a separate classloader
// The webInfClassLoader delegates to the Piranha class loader.
// The class loading hierarchy looks as follows:
// Web-inf class loader (application classes)
// |
// |--- System class loader (Pass-through for Shrinkwrap classes only)
// |--- java.lang.ClassLoader (super class, Weld, Javasist etc hack-in their classes here)
// |
// Piranha class loader (Piranha classes)
// |
// |
// Platform class loader (JDK classes)
ClassLoader webInfClassLoader = getWebInfClassLoader(archive, piranhaClassLoader);
Thread.currentThread().setContextClassLoader(webInfClassLoader);
try {
URL.setURLStreamHandlerFactory(new StaticURLStreamHandlerFactory());
} catch (Error error) { // Yes, we know...
// Ignore
}
System.setProperty("micro.version", getClass().getPackage().getImplementationVersion());
microInnerDeployer =
Class.forName(
"cloud.piranha.micro.MicroInnerDeployer",
true,
webInfClassLoader)
.getDeclaredConstructor()
.newInstance();
servletNames.addAll((Set<String>)
microInnerDeployer
.getClass()
.getMethod("start", Archive.class, ClassLoader.class, Map.class, Integer.class)
.invoke(microInnerDeployer,
archive,
webInfClassLoader,
StaticURLStreamHandlerFactory.getHandlers(),
configuration.getPort()));
return servletNames;
} catch (InstantiationException | IllegalAccessException | ClassNotFoundException | IllegalArgumentException | InvocationTargetException | NoSuchMethodException | SecurityException e) {
throw new IllegalStateException("", e);
} finally {
Thread.currentThread().setContextClassLoader(oldClassLoader);
}
}
示例10
public static PomEquippedResolveStage loadPom(ConfigurableMavenResolverSystem resolver) {
return resolver.loadPomFromFile(FileSystemLayout.resolveMavenBuildFileName(), determineProfiles());
}
示例11
public static ShrinkwrapArtifactResolvingHelper defaultInstance() {
return INSTANCE.updateAndGet(e -> {
if (e != null) {
return e;
}
MavenRemoteRepository jbossPublic =
MavenRemoteRepositories.createRemoteRepository("jboss-public-repository-group",
"https://repository.jboss.org/nexus/content/groups/public/",
MAVEN_LAYOUT_DEFAULT);
jbossPublic.setChecksumPolicy(MavenChecksumPolicy.CHECKSUM_POLICY_IGNORE);
jbossPublic.setUpdatePolicy(MavenUpdatePolicy.UPDATE_POLICY_NEVER);
MavenRemoteRepository redhatGa =
MavenRemoteRepositories.createRemoteRepository("redhat-ga",
"https://maven.repository.redhat.com/ga/",
MAVEN_LAYOUT_DEFAULT);
redhatGa.setChecksumPolicy(MavenChecksumPolicy.CHECKSUM_POLICY_IGNORE);
redhatGa.setUpdatePolicy(MavenUpdatePolicy.UPDATE_POLICY_NEVER);
MavenRemoteRepository gradleTools =
MavenRemoteRepositories.createRemoteRepository("gradle",
"https://repo.gradle.org/gradle/libs-releases-local",
MAVEN_LAYOUT_DEFAULT);
gradleTools.setChecksumPolicy(MavenChecksumPolicy.CHECKSUM_POLICY_IGNORE);
gradleTools.setUpdatePolicy(MavenUpdatePolicy.UPDATE_POLICY_NEVER);
Boolean offline = Boolean.valueOf(System.getProperty("thorntail.resolver.offline", "false"));
final ConfigurableMavenResolverSystem resolver = Maven.configureResolver()
.withMavenCentralRepo(true)
.withRemoteRepo(jbossPublic)
.withRemoteRepo(redhatGa)
.withRemoteRepo(gradleTools)
.workOffline(offline);
final String additionalRepos = System.getProperty(SwarmInternalProperties.BUILD_REPOS);
if (additionalRepos != null) {
Arrays.asList(additionalRepos.split(","))
.forEach(r -> {
MavenRemoteRepository repo =
MavenRemoteRepositories.createRemoteRepository(r, r, MAVEN_LAYOUT_DEFAULT);
repo.setChecksumPolicy(MavenChecksumPolicy.CHECKSUM_POLICY_IGNORE);
repo.setUpdatePolicy(MavenUpdatePolicy.UPDATE_POLICY_NEVER);
resolver.withRemoteRepo(repo);
});
}
ShrinkwrapArtifactResolvingHelper helper = new ShrinkwrapArtifactResolvingHelper(resolver);
helper.session().setCache(new SimpleRepositoryCache());
helper.session().setUpdatePolicy(RepositoryPolicy.UPDATE_POLICY_DAILY);
helper.session().setChecksumPolicy(RepositoryPolicy.CHECKSUM_POLICY_IGNORE);
return helper;
});
}
示例12
public ConfigurableMavenResolverSystem getResolver() {
return resolver;
}
示例13
public ShrinkwrapArtifactResolvingHelper(ConfigurableMavenResolverSystem resolver) {
this.resolver = resolver;
transferListener(new FailureReportingTransferListener());
}
示例14
public ShrinkwrapArtifactResolvingHelper(ConfigurableMavenResolverSystem resolver) {
this.resolver = resolver;
transferListener(new FailureReportingTransferListener());
}
示例15
public File run() throws Exception {
final String[] parts = this.source.getName().split("\\.(?=[^\\.]+$)");
final String baseName = parts[0];
final String type = parts[1] == null ? "jar" : parts[1];
final MavenRemoteRepository jbossPublic =
MavenRemoteRepositories.createRemoteRepository("jboss-public-repository-group",
"http://repository.jboss.org/nexus/content/groups/public/",
"default");
jbossPublic.setChecksumPolicy(MavenChecksumPolicy.CHECKSUM_POLICY_IGNORE);
jbossPublic.setUpdatePolicy(MavenUpdatePolicy.UPDATE_POLICY_NEVER);
final ConfigurableMavenResolverSystem resolver = Maven.configureResolver()
.withMavenCentralRepo(true)
.withRemoteRepo(jbossPublic);
final BuildTool tool = new BuildTool()
.artifactResolvingHelper(new ShrinkwrapArtifactResolvingHelper(resolver))
.projectArtifact("", baseName, "", type, this.source)
.resolveTransitiveDependencies(true)
.properties(this.properties);
if (this.autoDetectFractions) {
this.swarmDependencies.addAll(new PackageAnalyzer(this.source).detectNeededFractions());
} else {
System.err.println("Skipping fraction auto-detection");
}
for (String dep : this.swarmDependencies) {
tool.dependency("compile", "org.wildfly.swarm", dep, this.version, "jar", null, null, true);
}
final String jarName = this.name != null ? this.name : baseName;
final String outDir = this.outputDir.getCanonicalPath();
System.err.println(String.format("Building %s/%s-swarm.jar with fractions: %s",
outDir,
jarName,
String.join(", ",
allRequiredFractions()
.stream()
.sorted()
.collect(Collectors.toList()))));
return tool.build(jarName, Paths.get(outDir));
}
示例16
ConfigurableMavenResolverSystem getMavenResolver()
{
// Retrieve resolver configuration
if (REPO_LIST == null)
{
REPO_LIST = new ArrayList<>(5);
for (String gp : mavenRepos)
{
REPO_LIST.add(gp);
}
MAVEN_SETTINGS_CL = mavenSettingsClPath;
MAVEN_SETTINGS_FILE = mavenSettingsFilePath;
}
// Resolver
ConfigurableMavenResolverSystem resolver = Maven.configureResolver();
// settings.xml?
if (MAVEN_SETTINGS_CL != null && MAVEN_SETTINGS_FILE == null)
{
jqmlogger.trace("Custom settings file from class-path will be used: " + MAVEN_SETTINGS_CL);
resolver.fromClassloaderResource(MAVEN_SETTINGS_CL);
}
if (MAVEN_SETTINGS_FILE != null)
{
jqmlogger.trace("Custom settings file from file system will be used: " + MAVEN_SETTINGS_FILE);
resolver.fromFile(MAVEN_SETTINGS_FILE);
}
// Repositories to use.
boolean withCentral = false;
for (String repo : REPO_LIST)
{
if (repo.contains("repo1.maven.org"))
{
withCentral = true;
jqmlogger.trace("Using Maven central as a Maven repository");
continue;
}
jqmlogger.trace("Using Maven repository {}", repo);
resolver = resolver
.withRemoteRepo(MavenRemoteRepositories.createRemoteRepository("repo" + Math.abs(repo.hashCode()), repo, "default")
.setUpdatePolicy(MavenUpdatePolicy.UPDATE_POLICY_NEVER));
}
resolver.withMavenCentralRepo(withCentral);
return resolver;
}
示例17
MavenResolvedArtifact[] resolve(ConfigurableMavenResolverSystem resolver);
示例18
MavenResolvedArtifact[] resolve(ConfigurableMavenResolverSystem resolver);