Example usage for org.apache.maven.project MavenProject getArtifact

List of usage examples for org.apache.maven.project MavenProject getArtifact

Introduction

In this page you can find the example usage for org.apache.maven.project MavenProject getArtifact.

Prototype

public Artifact getArtifact() 

Source Link

Usage

From source file:org.debian.dependency.sources.SCMSourceRetrieval.java

License:Apache License

private MavenProject constructProject(final Artifact artifact, final MavenSession session)
        throws SourceRetrievalException {
    try {//w w w .  j a v a 2 s .com
        // pom files are not set up in projects which are not in the workspace, we add them in manually since they are needed
        Artifact pomArtifact = repositorySystem.createProjectArtifact(artifact.getGroupId(),
                artifact.getArtifactId(), artifact.getVersion());
        pomArtifact = resolveArtifact(pomArtifact, session);

        ProjectBuildingRequest request = new DefaultProjectBuildingRequest(session.getProjectBuildingRequest());
        request.setActiveProfileIds(null);
        request.setInactiveProfileIds(null);
        request.setUserProperties(null);

        ProjectBuildingResult result = projectBuilder.build(artifact, request);

        MavenProject mavenProject = result.getProject();
        mavenProject.setArtifact(resolveArtifact(mavenProject.getArtifact(), session));
        mavenProject.setFile(pomArtifact.getFile());
        return mavenProject;
    } catch (ProjectBuildingException e) {
        throw new SourceRetrievalException(e);
    }
}

From source file:org.debian.dependency.sources.SCMSourceRetrieval.java

License:Apache License

@Override
public String getSourceDirname(final Artifact artifact, final MavenSession session)
        throws SourceRetrievalException {
    MavenProject project = findProjectRoot(constructProject(artifact, session));
    return ArtifactUtils.key(project.getArtifact());
}

From source file:org.debian.maven.packager.GenerateDebianFilesMojo.java

License:Apache License

private void setupArtifactLocation(ListOfPOMs listOfPOMs, ListOfPOMs listOfJavadocPOMs,
        MavenProject mavenProject) {
    String dirRelPath = new WrappedProject(project, mavenProject).getBaseDir();

    if (!"pom".equals(mavenProject.getPackaging())) {
        String pomFile = dirRelPath + "pom.xml";
        listOfPOMs.getOrCreatePOMOptions(pomFile).setJavaLib(true);
        String extension = mavenProject.getPackaging();
        if (extension.equals("bundle")) {
            extension = "jar";
        }/*from   w w w  .ja  va  2 s  .c  om*/
        if (extension.equals("webapp")) {
            extension = "war";
        }
        if (mavenProject.getArtifact() != null && mavenProject.getArtifact().getFile() != null) {
            extension = mavenProject.getArtifact().getFile().toString();
            extension = extension.substring(extension.lastIndexOf('.') + 1);
        }
        POMOptions pomOptions = listOfPOMs.getOrCreatePOMOptions(pomFile);
        pomOptions.setArtifact(dirRelPath + "target/" + mavenProject.getArtifactId() + "-*." + extension);
        if ("jar".equals(extension) && generateJavadoc && "ant".equals(packageType)
                && listOfJavadocPOMs != null) {
            String artifactId = mavenProject.getArtifact().getArtifactId();
            POMOptions javadocPomOptions = listOfJavadocPOMs.getOrCreatePOMOptions(pomFile);
            javadocPomOptions.setIgnorePOM(true);
            javadocPomOptions.setArtifact(dirRelPath + "target/" + artifactId + ".javadoc.jar");
            javadocPomOptions.setClassifier("javadoc");
            javadocPomOptions.setHasPackageVersion(pomOptions.getHasPackageVersion());
        }
        pomOptions.setJavaLib(true);
        if (mavenProject.getArtifactId().matches(packageName + "\\d")) {
            pomOptions.setUsjName(packageName);
        }
    }
}

From source file:org.deegree.maven.utils.ClasspathHelper.java

License:Open Source License

/**
 * @param project/*from   www  .  j  a  v a 2  s. c o  m*/
 * @param artifactResolver
 * @param artifactFactory
 * @param metadataSource
 * @param localRepository
 * @param type
 * @return a list of all (possibly transitive) artifacts of the given type
 * @throws InvalidDependencyVersionException
 * @throws ArtifactResolutionException
 * @throws ArtifactNotFoundException
 */
public static Set<?> getDependencyArtifacts(MavenProject project, ArtifactResolver artifactResolver,
        ArtifactFactory artifactFactory, ArtifactMetadataSource metadataSource,
        ArtifactRepository localRepository, final String type, boolean transitively)
        throws InvalidDependencyVersionException, ArtifactResolutionException, ArtifactNotFoundException {

    List<?> dependencies = project.getDependencies();

    Set<Artifact> dependencyArtifacts = createArtifacts(artifactFactory, dependencies, null,
            new ArtifactFilter() {
                @Override
                public boolean include(Artifact artifact) {
                    return artifact != null && artifact.getType() != null && artifact.getType().equals(type);
                }
            }, null);

    ArtifactResolutionResult result;
    Artifact mainArtifact = project.getArtifact();

    result = artifactResolver.resolveTransitively(dependencyArtifacts, mainArtifact, EMPTY_MAP, localRepository,
            project.getRemoteArtifactRepositories(), metadataSource, null, EMPTY_LIST);

    if (transitively) {
        return result.getArtifacts();
    }

    LinkedHashSet<Artifact> set = new LinkedHashSet<Artifact>();
    if (mainArtifact.getType() != null && mainArtifact.getType().equals(type)) {
        set.add(mainArtifact);
    }
    set.addAll(dependencyArtifacts);

    return set;
}

From source file:org.deegree.maven.utils.ClasspathHelper.java

License:Open Source License

private static Set<?> resolveDeps(MavenProject project, ArtifactResolver artifactResolver,
        ArtifactFactory artifactFactory, ArtifactMetadataSource metadataSource,
        ArtifactRepository localRepository)
        throws InvalidDependencyVersionException, ArtifactResolutionException, ArtifactNotFoundException {

    List<?> dependencies = project.getDependencies();

    Set<Artifact> dependencyArtifacts = createArtifacts(artifactFactory, dependencies, null, null, null);

    dependencyArtifacts.add(project.getArtifact());

    ArtifactResolutionResult result = artifactResolver.resolveTransitively(dependencyArtifacts,
            project.getArtifact(), EMPTY_MAP, localRepository, project.getRemoteArtifactRepositories(),
            metadataSource, null, EMPTY_LIST);

    return result.getArtifacts();
}

From source file:org.eclipse.che.maven.server.MavenServerImpl.java

License:Open Source License

private MavenResult internalResolveProject(File pom, List<String> activeProfiles, List<String> inactiveProfiles,
        List<ResolutionListener> dependencyTreeResolutionListeners) {

    MavenExecutionRequest request = newMavenRequest(pom, activeProfiles, inactiveProfiles,
            Collections.emptyList());
    request.setUpdateSnapshots(updateSnapshots);

    AtomicReference<MavenResult> reference = new AtomicReference<>();
    runMavenRequest(request, () -> {//from www  . j a v a2s  . c o m
        try {
            ProjectBuilder builder = getMavenComponent(ProjectBuilder.class);

            List<ProjectBuildingResult> resultList = builder.build(Collections.singletonList(pom), false,
                    request.getProjectBuildingRequest());
            ProjectBuildingResult result = resultList.get(0);
            MavenProject mavenProject = result.getProject();
            RepositorySystemSession repositorySession = getMavenComponent(LegacySupport.class)
                    .getRepositorySession();
            if (repositorySession instanceof DefaultRepositorySystemSession) {
                ((DefaultRepositorySystemSession) repositorySession)
                        .setTransferListener(new ArtifactTransferListener(mavenProgressNotifier));
                if (workspaceCache != null) {
                    ((DefaultRepositorySystemSession) repositorySession)
                            .setWorkspaceReader(new MavenWorkspaceReader(workspaceCache));
                }

            }

            List<Exception> exceptions = new ArrayList<>();

            loadExtensions(mavenProject, exceptions);
            mavenProject.setDependencyArtifacts(
                    mavenProject.createArtifacts(getMavenComponent(ArtifactFactory.class), null, null));

            ArtifactResolutionRequest resolutionRequest = new ArtifactResolutionRequest();
            resolutionRequest.setArtifact(mavenProject.getArtifact());
            resolutionRequest.setRemoteRepositories(mavenProject.getRemoteArtifactRepositories());
            resolutionRequest.setArtifactDependencies(mavenProject.getDependencyArtifacts());
            resolutionRequest.setListeners(dependencyTreeResolutionListeners);
            resolutionRequest.setLocalRepository(localRepo);
            resolutionRequest.setManagedVersionMap(mavenProject.getManagedVersionMap());
            resolutionRequest.setResolveTransitively(true);
            resolutionRequest.setResolveRoot(false);
            ArtifactResolver resolver = getMavenComponent(ArtifactResolver.class);
            ArtifactResolutionResult resolve = resolver.resolve(resolutionRequest);
            mavenProject.setArtifacts(resolve.getArtifacts());
            reference.set(new MavenResult(mavenProject, exceptions));

        } catch (Exception e) {
            reference.set(new MavenResult(null, null, Collections.singletonList(e)));
        }
    });
    return reference.get();
}

From source file:org.eclipse.m2e.core.internal.project.registry.MavenProjectFacade.java

License:Open Source License

public MavenProjectFacade(ProjectRegistryManager manager, IFile pom, MavenProject mavenProject,
        Map<String, List<MojoExecution>> executionPlans, ResolverConfiguration resolverConfiguration) {
    this.manager = manager;
    this.pom = pom;
    IPath location = pom.getLocation();/*from   w  w  w  . j a v  a  2  s.com*/
    this.pomFile = location == null ? null : location.toFile(); // save pom file
    this.resolverConfiguration = resolverConfiguration;

    this.mavenProject = mavenProject;
    this.executionPlans = executionPlans;

    this.artifactKey = new ArtifactKey(mavenProject.getArtifact());
    this.packaging = mavenProject.getPackaging();
    this.modules = mavenProject.getModules();

    this.resourceLocations = MavenProjectUtils.getResourceLocations(getProject(), mavenProject.getResources());
    this.testResourceLocations = MavenProjectUtils.getResourceLocations(getProject(),
            mavenProject.getTestResources());
    this.compileSourceLocations = MavenProjectUtils.getSourceLocations(getProject(),
            mavenProject.getCompileSourceRoots());
    this.testCompileSourceLocations = MavenProjectUtils.getSourceLocations(getProject(),
            mavenProject.getTestCompileSourceRoots());

    IPath fullPath = getProject().getFullPath();

    IPath path = getProjectRelativePath(mavenProject.getBuild().getOutputDirectory());
    this.outputLocation = (path != null) ? fullPath.append(path) : null;

    path = getProjectRelativePath(mavenProject.getBuild().getTestOutputDirectory());
    this.testOutputLocation = path != null ? fullPath.append(path) : null;

    this.artifactRepositories = new LinkedHashSet<ArtifactRepositoryRef>();
    for (ArtifactRepository repository : mavenProject.getRemoteArtifactRepositories()) {
        this.artifactRepositories.add(new ArtifactRepositoryRef(repository));
    }

    this.pluginArtifactRepositories = new LinkedHashSet<ArtifactRepositoryRef>();
    for (ArtifactRepository repository : mavenProject.getPluginArtifactRepositories()) {
        this.pluginArtifactRepositories.add(new ArtifactRepositoryRef(repository));
    }

    setMavenProjectArtifacts();

    updateTimestamp();
}

From source file:org.eclipse.m2e.wtp.WebProjectConfiguratorDelegate.java

License:Open Source License

public void setModuleDependencies(IProject project, MavenProject mavenProject, IProgressMonitor monitor)
        throws CoreException {
    IVirtualComponent component = ComponentCore.createComponent(project);
    //if the attempt to create dependencies happens before the project is actually created, abort. 
    //this will be created again when the project exists.
    if (component == null) {
        return;/*from  w  ww.  java  2s .c  o m*/
    }
    //MECLIPSEWTP-41 Fix the missing moduleCoreNature
    fixMissingModuleCoreNature(project, monitor);

    DebugUtilities.debug("==============Processing " + project.getName() + " dependencies ===============");
    WarPluginConfiguration config = new WarPluginConfiguration(mavenProject, project);
    IPackagingConfiguration opts = new PackagingConfiguration(config.getPackagingIncludes(),
            config.getPackagingExcludes());
    FileNameMapping fileNameMapping = config.getFileNameMapping();

    List<AbstractDependencyConfigurator> depConfigurators = ExtensionReader
            .readDependencyConfiguratorExtensions(projectManager, MavenPlugin.getMavenRuntimeManager(),
                    mavenMarkerManager);

    Set<IVirtualReference> references = new LinkedHashSet<IVirtualReference>();
    List<IMavenProjectFacade> exportedDependencies = getWorkspaceDependencies(project, mavenProject);

    Set<String> dups = new HashSet<String>();
    Set<String> names = new HashSet<String>();
    Map<IVirtualReference, Artifact> referenceMapping = new HashMap<IVirtualReference, Artifact>(
            exportedDependencies.size());
    for (IMavenProjectFacade dependency : exportedDependencies) {
        String depPackaging = dependency.getPackaging();
        if ("pom".equals(depPackaging) //MNGECLIPSE-744 pom dependencies shouldn't be deployed
                || "war".equals(depPackaging) //Overlays are dealt with the overlay configurator
                || "zip".equals(depPackaging)) {
            continue;
        }

        try {
            preConfigureDependencyProject(dependency, monitor);

            if (!ModuleCoreNature.isFlexibleProject(dependency.getProject())) {
                //Projects unsupported by WTP (ex. adobe flex projects) should not be added as references
                continue;
            }
            MavenProject depMavenProject = dependency.getMavenProject(monitor);

            IVirtualComponent depComponent = ComponentCore.createComponent(dependency.getProject());

            ArtifactKey artifactKey = ArtifactHelper.toArtifactKey(depMavenProject.getArtifact());
            //Get artifact using the proper classifier
            Artifact artifact = ArtifactHelper.getArtifact(mavenProject.getArtifacts(), artifactKey);
            if (artifact == null) {
                //could not map key to artifact
                artifact = depMavenProject.getArtifact();
            }
            ArtifactHelper.fixArtifactHandler(artifact.getArtifactHandler());
            String deployedName = fileNameMapping.mapFileName(artifact);

            boolean isDeployed = !artifact.isOptional() && opts.isPackaged("WEB-INF/lib/" + deployedName);

            //an artifact in mavenProject.getArtifacts() doesn't have the "optional" value as depMavenProject.getArtifact();  
            if (isDeployed) {
                IVirtualReference reference = ComponentCore.createReference(component, depComponent);
                IPath path = new Path("/WEB-INF/lib");
                reference.setArchiveName(deployedName);
                reference.setRuntimePath(path);
                references.add(reference);

                referenceMapping.put(reference, artifact);
                if (!names.add(deployedName)) {
                    dups.add(deployedName);
                }
            }
        } catch (RuntimeException ex) {
            //Should probably be NPEs at this point
            String dump = DebugUtilities.dumpProjectState("An error occured while configuring a dependency of  "
                    + project.getName() + DebugUtilities.SEP, dependency.getProject());
            LOG.error(dump);
            throw ex;
        }
    }

    for (IVirtualReference reference : references) {
        if (dups.contains(reference.getArchiveName())) {
            Artifact a = referenceMapping.get(reference);
            String newName = a.getGroupId() + "-" + reference.getArchiveName();
            reference.setArchiveName(newName);
        }
    }

    IVirtualReference[] oldRefs = WTPProjectsUtil.extractHardReferences(component, false);

    IVirtualReference[] newRefs = references.toArray(new IVirtualReference[references.size()]);

    if (WTPProjectsUtil.hasChanged(oldRefs, newRefs)) {
        //Only write in the .component file if necessary 
        IVirtualReference[] overlayRefs = WTPProjectsUtil.extractHardReferences(component, true);
        IVirtualReference[] allRefs = new IVirtualReference[overlayRefs.length + newRefs.length];
        System.arraycopy(newRefs, 0, allRefs, 0, newRefs.length);
        System.arraycopy(overlayRefs, 0, allRefs, newRefs.length, overlayRefs.length);
        component.setReferences(allRefs);
    }

    //TODO why a 2nd loop???
    for (IMavenProjectFacade dependency : exportedDependencies) {
        MavenProject depMavenProject = dependency.getMavenProject(monitor);
        Iterator<AbstractDependencyConfigurator> configurators = depConfigurators.iterator();
        while (configurators.hasNext()) {
            try {
                configurators.next().configureDependency(mavenProject, project, depMavenProject,
                        dependency.getProject(), monitor);
            } catch (MarkedException ex) {
                //XXX handle this
            }
        }
    }

}

From source file:org.eclipse.tycho.plugins.p2.P2MetadataMojo.java

License:Open Source License

/**
 * Returns a map from classifiers to artifact files of the given project. The classifier
 * <code>null</code> is mapped to the project's main artifact.
 *///from w  w  w.  j a va  2  s .  co  m
private static Map<String, File> getAllProjectArtifacts(MavenProject project) {
    Map<String, File> artifacts = new HashMap<String, File>();
    Artifact mainArtifact = project.getArtifact();
    if (mainArtifact != null) {
        artifacts.put(null, mainArtifact.getFile());
    }
    for (Artifact attachedArtifact : project.getAttachedArtifacts()) {
        artifacts.put(attachedArtifact.getClassifier(), attachedArtifact.getFile());
    }
    return artifacts;
}

From source file:org.efaps.maven_java5.EfapsAnnotationDescriptorExtractor.java

License:Open Source License

/**
 *
 * @param _project  maven project//  w ww .  java 2 s.  c  om
 * @return
 * @throws InvalidPluginDescriptorException
 */
protected ClassLoader getClassLoader(final MavenProject _project) throws InvalidPluginDescriptorException {
    final List<URL> urls = new ArrayList<URL>();

    // append all compile dependencies to the urls
    final Set<Artifact> toResolve = new HashSet<Artifact>();
    for (final Object obj : _project.getDependencies()) {
        final Dependency dependency = (Dependency) obj;
        final String scope = dependency.getScope();
        if (isCompileScope(scope)) {
            final Artifact artifact = this.artifactFactory.createArtifact(dependency.getGroupId(),
                    dependency.getArtifactId(), dependency.getVersion(), scope, dependency.getType());
            toResolve.add(artifact);
        }
    }
    try {
        final ArtifactResolutionResult result = this.artifactResolver.resolveTransitively(toResolve,
                _project.getArtifact(), getManagedVersionMap(_project), getLocalRepository(),
                _project.getRemoteArtifactRepositories(), this.artifactMetadataSource, this.filter);
        for (final Object obj : result.getArtifacts()) {
            final Artifact artifact = (Artifact) obj;
            urls.add(artifact.getFile().toURL());
        }
    } catch (final Exception e) {
        throw new InvalidPluginDescriptorException(
                "Failed to resolve transitively artifacts: " + e.getMessage(), e);
    }

    // append compile class path elements
    for (final Object obj : _project.getArtifacts()) {
        final Artifact cpe = (Artifact) obj;
        try {
            urls.add(cpe.getFile().toURL()); // URI().toURL() );
        } catch (final MalformedURLException e) {
            getLogger().warn("Cannot convert '" + cpe + "' to URL", e);
        }
    }

    // append target output directory (where the compiled files are)
    try {
        urls.add(new File(_project.getBuild().getOutputDirectory()).toURL());
    } catch (final MalformedURLException e) {
        getLogger().warn("Cannot convert '" + _project.getBuild().getOutputDirectory() + "' to URL", e);
    }

    if (getLogger().isDebugEnabled()) {
        getLogger().debug("URLS: \n" + urls.toString().replaceAll(",", "\n  "));
    } else if (getLogger().isInfoEnabled()) {
        getLogger().info("URLS: \n" + urls.toString().replaceAll(",", "\n  "));
    }

    return new URLClassLoader(urls.toArray(new URL[urls.size()]), getClass().getClassLoader());
}