List of usage examples for org.apache.maven.project DefaultProjectBuildingRequest DefaultProjectBuildingRequest
public DefaultProjectBuildingRequest(ProjectBuildingRequest request)
From source file:com.github.veithen.phos.jacoco.AggregateReportMojo.java
License:Apache License
private File resolveArtifact(Artifact baseArtifact, String classifier, String type, boolean localOnly, boolean allowMissing) throws MojoExecutionException { ProjectBuildingRequest projectBuildingRequest = session.getProjectBuildingRequest(); if (localOnly) { projectBuildingRequest = new DefaultProjectBuildingRequest(projectBuildingRequest); projectBuildingRequest.setRemoteRepositories(Collections.<ArtifactRepository>emptyList()); }/*ww w.j ava2 s. c om*/ Dependency dependency = new Dependency(); dependency.setGroupId(baseArtifact.getGroupId()); dependency.setArtifactId(baseArtifact.getArtifactId()); dependency.setVersion(baseArtifact.getVersion()); dependency.setType(type); dependency.setClassifier(classifier); dependency.setScope(Artifact.SCOPE_COMPILE); Artifact artifact = repositorySystem.createDependencyArtifact(dependency); try { return resolver.resolveArtifact(projectBuildingRequest, artifact).getArtifact().getFile(); } catch (ArtifactResolverException ex) { if (allowMissing) { return null; } else { throw new MojoExecutionException("Unable to resolve artifact", ex); } } }
From source file:com.github.wcy123.maven.launcher.RunnerMojo.java
License:Apache License
@Override public void execute() throws MojoExecutionException, MojoFailureException { if (isSkip()) { getLog().info("Skipping plugin execution"); return;/* w ww .j a v a 2 s . com*/ } if (coordinate.getArtifactId() == null && artifact == null) { throw new MojoFailureException("You must specify an artifact, " + "e.g. -Dartifact=org.apache.maven.plugins:maven-downloader-plugin:1.0"); } if (artifact != null) { String[] tokens = StringUtils.split(artifact, ":"); if (tokens.length < 3 || tokens.length > 5) { throw new MojoFailureException( "Invalid artifact, you must specify groupId:artifactId:version[:packaging[:classifier]] " + artifact); } coordinate.setGroupId(tokens[0]); coordinate.setArtifactId(tokens[1]); coordinate.setVersion(tokens[2]); if (tokens.length >= 4) { coordinate.setType(tokens[3]); } if (tokens.length == 5) { coordinate.setClassifier(tokens[4]); } } ArtifactRepositoryPolicy always = new ArtifactRepositoryPolicy(true, ArtifactRepositoryPolicy.UPDATE_POLICY_ALWAYS, ArtifactRepositoryPolicy.CHECKSUM_POLICY_WARN); List<ArtifactRepository> repoList = new ArrayList<ArtifactRepository>(); if (pomRemoteRepositories != null) { repoList.addAll(pomRemoteRepositories); } if (remoteRepositories != null) { // Use the same format as in the deploy plugin id::layout::url List<String> repos = Arrays.asList(StringUtils.split(remoteRepositories, ",")); for (String repo : repos) { repoList.add(parseRepository(repo, always)); } } try { ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest( session.getProjectBuildingRequest()); buildingRequest.setProject(session.getCurrentProject()); buildingRequest.setRemoteRepositories(repoList); getLog().info("Resolving " + coordinate + " with transitive dependencies"); // FIXME // artifactResolver.resolveArtifact( buildingRequest, coordinate ); final Iterable<ArtifactResult> artifactResults = dependencyResolver.resolveDependencies(buildingRequest, coordinate, null); // start from here if (!artifactResults.iterator().hasNext()) { getLog().error("cannot find the first artifcat"); return; } List<Artifact> listOfArtifacts = new ArrayList<>(); for (ArtifactResult artifactResult : artifactResults) { getLog().info("artifacts " + artifactResult.getArtifact()); listOfArtifacts.add(artifactResolver.resolveArtifact(buildingRequest, artifactResult.getArtifact()) .getArtifact()); } URL[] urls = new URL[listOfArtifacts.size()]; for (int i = 0; i < urls.length; ++i) { urls[i] = listOfArtifacts.get(i).getFile().toURI().toURL(); } final SharedUrlClassLoader classLoader = SharedUrlClassLoader.create(urls); final JarFile jarFile = new JarFile(urls[0].getFile()); final Manifest manifest = jarFile.getManifest(); String value = manifest.getMainAttributes().getValue("Main-Class"); // final String charSequence = "cannot find Main-Class: " + // manifest.getMainAttributes().entrySet().stream().map(e -> e.getKey() + ":" + // e.getValue()).collect(Collectors.joining("\n")); if (value == null) { throw new MojoFailureException("cannot find Main-Class " + classLoader.getURLs()); } value = "com.wcy123.HelloWorldApplication"; System.out.println("value is value " + value); final Class<?> aClass = Class.forName(value, true, classLoader); final Method main = aClass.getMethod("main", String[].class); Thread runnerThread = new Thread(new Runnable() { @Override public void run() { try { main.invoke(null, new Object[] { new String[] { "hello", "world" } }); } catch (IllegalAccessException | InvocationTargetException e) { e.printStackTrace(); } } }); runnerThread.setContextClassLoader(classLoader); runnerThread.start(); runnerThread.join(); } catch (DependencyResolverException e) { throw new MojoExecutionException("Couldn't download artifact: " + e.getMessage(), e); } catch (IOException e) { getLog().error("cannot create class loader", e); throw new MojoFailureException("cannot create class loader"); } catch (ArtifactResolverException e) { getLog().error("cannot resolve artifact", e); throw new MojoFailureException("cannot resolve artifact"); } catch (ClassNotFoundException e) { getLog().error("cannot load Main-Class", e); throw new MojoFailureException("cannot load Main-Class"); } catch (NoSuchMethodException e) { getLog().error("cannot get main method", e); throw new MojoFailureException("cannot get main method"); } catch (InterruptedException e) { getLog().error("interrupted", e); } }
From source file:com.teamtter.simplelicenses.GenerateDependenciesLicenseInfoMojo.java
private void generateDependenciesLicenseInfo() throws ProjectBuildingException { Artifacts2LicensesRepository repo = new Artifacts2LicensesRepository(); ProjectBuildingRequest request = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest()); // Build the project and get the result List<Artifact> runtimeArtifacts = mavenProject.getRuntimeArtifacts(); for (Artifact artifact : runtimeArtifacts) { MavenProject project = projectBuilder.build(artifact, request).getProject(); List<String> licenses = project.getLicenses(); log.info("licenses = {}", licenses); repo.add(artifact, project.getLicenses()); }// ww w . j a va 2 s . co m }
From source file:com.xpn.xwiki.tool.backup.AbstractImportMojo.java
License:Open Source License
protected MavenProject getMavenProject(Artifact artifact) throws MojoExecutionException { try {//from w w w . ja v a 2s . c o m ProjectBuildingRequest request = new DefaultProjectBuildingRequest( this.session.getProjectBuildingRequest()) // We don't want to execute any plugin here .setProcessPlugins(false) // It's not this plugin job to validate this pom.xml .setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL) // Use the repositories configured for the built project instead of the default Maven ones .setRemoteRepositories( this.session.getCurrentProject().getRemoteArtifactRepositories()); // Note: build() will automatically get the POM artifact corresponding to the passed artifact. ProjectBuildingResult result = this.projectBuilder.build(artifact, request); return result.getProject(); } catch (ProjectBuildingException e) { throw new MojoExecutionException(String.format("Failed to build project for [%s]", artifact), e); } }
From source file:com.xwikisas.xcs.tools.dependenciespackager.PackageExtensionsMojo.java
License:Open Source License
private MavenProject getMavenProject(Artifact artifact) throws MojoExecutionException { try {//from ww w . jav a 2s . c o m ProjectBuildingRequest request = new DefaultProjectBuildingRequest( this.session.getProjectBuildingRequest()) // We don't want to execute any plugin here .setProcessPlugins(false) // It's not this plugin job to validate this pom.xml .setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL) // Use the repositories configured for the built project instead of the default Maven ones .setRemoteRepositories( this.session.getCurrentProject().getRemoteArtifactRepositories()); // Note: build() will automatically get the POM artifact corresponding to the passed artifact. ProjectBuildingResult result = this.projectBuilder.build(artifact, request); return result.getProject(); } catch (ProjectBuildingException e) { throw new MojoExecutionException(String.format("Failed to build project for [%s]", artifact), e); } }
From source file:io.syndesis.maven.ExtractConnectorDescriptorsMojo.java
License:Apache License
@Override @SuppressWarnings("PMD.EmptyCatchBlock") public void execute() throws MojoExecutionException, MojoFailureException { ArrayNode root = new ArrayNode(JsonNodeFactory.instance); URLClassLoader classLoader = null; try {/* w ww . j ava 2 s . co m*/ PluginDescriptor desc = (PluginDescriptor) getPluginContext().get("pluginDescriptor"); List<Artifact> artifacts = desc.getArtifacts(); ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest( session.getProjectBuildingRequest()); buildingRequest.setRemoteRepositories(remoteRepositories); for (Artifact artifact : artifacts) { ArtifactResult result = artifactResolver.resolveArtifact(buildingRequest, artifact); File jar = result.getArtifact().getFile(); classLoader = createClassLoader(jar); if (classLoader == null) { throw new IOException("Can not create classloader for " + jar); } ObjectNode entry = new ObjectNode(JsonNodeFactory.instance); addConnectorMeta(entry, classLoader); addComponentMeta(entry, classLoader); if (entry.size() > 0) { addGav(entry, artifact); root.add(entry); } } if (root.size() > 0) { saveCamelMetaData(root); } } catch (ArtifactResolverException | IOException e) { throw new MojoExecutionException(e.getMessage(), e); } finally { if (classLoader != null) { try { classLoader.close(); } catch (IOException ignored) { } } } }
From source file:net.oneandone.maven.plugins.prerelease.util.Maven.java
License:Apache License
public MavenProject loadPom(FileNode file) throws ProjectBuildingException { ProjectBuildingRequest request;//from w w w . j av a2s. com ProjectBuildingResult result; // session initializes the repository session in the build request request = new DefaultProjectBuildingRequest(parentSession.getProjectBuildingRequest()); request.setRemoteRepositories(remoteRepositories); request.setProcessPlugins(false); request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_MINIMAL); request.setSystemProperties(System.getProperties()); //If you don't turn this into RepositoryMerging.REQUEST_DOMINANT the dependencies will be resolved against Maven Central //and not against the configured repositories. The default of the DefaultProjectBuildingRequest is // RepositoryMerging.POM_DOMINANT. request.setRepositoryMerging(ProjectBuildingRequest.RepositoryMerging.REQUEST_DOMINANT); request.setResolveDependencies(false); result = builder.build(file.toPath().toFile(), request); return result.getProject(); }
From source file:org.apifocal.maven.plugins.bom.AbstractBomMojo.java
License:Apache License
protected void importProperties(Dependency artifactMetadata) throws MojoExecutionException { try {/*w ww. ja va 2s. c o m*/ Artifact artifact = repoSystem.createDependencyArtifact(artifactMetadata); getLog().info("Importing properties from " + artifact); ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest( session.getProjectBuildingRequest()); buildingRequest.setProject(null); buildingRequest.setResolveDependencies(false); MavenProject bomProject = projectBuilder.build(artifact, buildingRequest).getProject(); bomProject.getProperties() .forEach((Object key, Object value) -> project.getProperties().putIfAbsent(key, value)); } catch (ProjectBuildingException ex) { getLog().error("Failed to resolve artifact", ex); throw new MojoExecutionException("Could not read artifact " + artifactMetadata.toString(), ex); } }
From source file:org.commonjava.emb.project.ProjectToolsSessionInjector.java
License:Apache License
public synchronized ProjectBuildingRequest getProjectBuildingRequest(final ProjectToolsSession session) throws ProjectToolsException { ProjectBuildingRequest pbr = session.getProjectBuildingRequest(); try {//from w w w .j a va2 s . c o m if (pbr == null) { pbr = emb.serviceManager().createProjectBuildingRequest(); pbr.setProcessPlugins(false); pbr.setResolveDependencies(false); pbr.setSystemProperties(System.getProperties()); pbr.setInactiveProfileIds(new ArrayList<String>()); pbr.setRepositoryMerging(ProjectBuildingRequest.RepositoryMerging.REQUEST_DOMINANT); final RepositorySystemSession rss = getRepositorySystemSession(session); pbr.setRepositorySession(rss); pbr.setLocalRepository( mavenRepositorySystem.createLocalRepository(rss.getLocalRepository().getBasedir())); pbr.setRemoteRepositories(getArtifactRepositories(session)); session.setProjectBuildingRequest(pbr); } else { pbr = new DefaultProjectBuildingRequest(pbr); pbr.setRepositorySession(getRepositorySystemSession(session)); } } catch (final EMBException e) { throw new ProjectToolsException("Failed to create project-building request: %s", e, e.getMessage()); } catch (final InvalidRepositoryException e) { throw new ProjectToolsException("Failed to create local-repository instance. Reason: %s", e, e.getMessage()); } return pbr; }
From source file:org.commonjava.emb.project.SimpleProjectToolsSession.java
License:Apache License
/** * {@inheritDoc}// w w w . ja v a 2s . com * * @see org.commonjava.emb.project.ProjectToolsSession#copyOf(org.commonjava.emb.project.ProjectToolsSession) */ @Override public ProjectToolsSession copy() { final SimpleProjectToolsSession copy = new SimpleProjectToolsSession(workdir, resolveRepositories); copy.dependencyGraph = dependencyGraph; copy.projectBuildingRequest = projectBuildingRequest == null ? null : new DefaultProjectBuildingRequest(projectBuildingRequest); copy.reactorProjects = new LinkedHashMap<String, MavenProject>(reactorProjects); copy.remoteArtifactRepositories = remoteArtifactRepositories == null ? null : new ArrayList<ArtifactRepository>(remoteArtifactRepositories); copy.remoteRepositories = remoteRepositories == null ? null : new ArrayList<RemoteRepository>(remoteRepositories); copy.repositorySystemSession = repositorySystemSession == null ? null : new DefaultRepositorySystemSession(repositorySystemSession); return copy; }