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

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

Introduction

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

Prototype

public Set<Artifact> getArtifacts() 

Source Link

Document

All dependencies that this project has, including transitive ones.

Usage

From source file:org.m1theo.apt.repo.utils.Utils.java

License:Open Source License

/**
 * Collects all artifacts of the given type.
 * /*from ww w .j av a  2 s . c om*/
 * @param project The maven project which should be used.
 * @param type The file type which should be collected.
 * @return A collection of all artifacts with the given type.
 */
@SuppressWarnings("unchecked")
public static Collection<Artifact> getAllArtifacts4Type(MavenProject project, String type, Boolean aggregate) {
    final Set<Artifact> artifacts = new LinkedHashSet<Artifact>();
    List<MavenProject> modules = new ArrayList<MavenProject>();
    modules.add(project);
    List<MavenProject> collectedProjects = project.getCollectedProjects();
    if (collectedProjects != null) {
        modules.addAll(collectedProjects);
    }
    for (MavenProject module : modules) {
        addDebArtifact(module.getArtifact(), artifacts, type);
        for (Object artifact : module.getArtifacts()) {
            if (artifact instanceof Artifact) {
                addDebArtifact((Artifact) artifact, artifacts, type);
            }
        }
        for (Object artifact : module.getAttachedArtifacts()) {
            if (artifact instanceof Artifact) {
                addDebArtifact((Artifact) artifact, artifacts, type);
            }
        }
    }
    if (project.hasParent() && aggregate) {
        artifacts.addAll(getAllArtifacts4Type(project.getParent(), type, aggregate));
    }
    return artifacts;
}

From source file:org.maven.ide.eclipse.actions.AddDependencyAction.java

License:Apache License

public void run(IAction action) {
    Object o = selection.iterator().next();
    IFile file;//from  w  ww  . j a  va 2s. co  m
    IProject project;
    if (o instanceof IProject) {
        project = (IProject) o;
        file = project.getFile(Maven2Plugin.POM_FILE_NAME);
    } else if (o instanceof IFile) {
        file = (IFile) o;
        project = file.getProject();
    } else {
        return;
    }

    MavenModelManager modelManager = Maven2Plugin.getDefault().getMavenModelManager();
    Set artifacts;
    try {
        IJavaProject javaProject = JavaCore.create(project);
        ResolverConfiguration resolverConfiguration = BuildPathManager.getResolverConfiguration(javaProject);

        MavenExecutionResult result = modelManager.readMavenProject(file.getLocation().toFile(),
                new NullProgressMonitor(), true, false, resolverConfiguration);
        MavenProject mavenProject = result.getProject();
        artifacts = mavenProject == null ? Collections.EMPTY_SET : mavenProject.getArtifacts();
    } catch (Exception ex) {
        // TODO move into ReadProjectTask
        String msg = "Unable to read project";
        Maven2Plugin.log(msg, ex);
        Maven2Plugin.getDefault().getConsole().logError(msg + "; " + ex.toString());
        return;
    }

    Maven2RepositorySearchDialog dialog = new Maven2RepositorySearchDialog(getShell(), artifacts,
            Indexer.JAR_NAME);
    if (dialog.open() == Window.OK) {
        Indexer.FileInfo fileInfo = (FileInfo) dialog.getFirstResult();
        if (fileInfo != null) {
            try {
                modelManager.addDependency(file, fileInfo.getDependency());
            } catch (Exception ex) {
                Maven2Plugin.log("Can't add dependency to " + file, ex);
            }
        }
    }
}

From source file:org.maven.ide.eclipse.embedder.MavenModelManager.java

License:Apache License

private void initMavenProject(IFile pomFile, IFile rootPomFile, Map mavenProjects, IProgressMonitor monitor,
        ResolverConfiguration resolverConfiguration) throws CoreException {
    String pomKey = getPomFileKey(pomFile);
    if (mavenProjects.containsKey(pomKey)) {
        return;// w ww . ja va 2  s .c  o  m
    }

    MavenExecutionResult result = readMavenProject(pomFile.getLocation().toFile(), monitor, true, false,
            resolverConfiguration);
    MavenProject mavenProject = result.getProject();
    if (mavenProject == null) {
        return;
    }

    mavenProjects.put(pomKey, mavenProject);

    Set artifacts = mavenProject.getArtifacts();
    for (Iterator it = artifacts.iterator(); it.hasNext();) {
        if (monitor.isCanceled()) {
            throw new OperationCanceledException();
        }
        Artifact artifact = (Artifact) it.next();
        addProjectArtifact(pomFile, artifact);
        addProjectArtifact(rootPomFile, artifact);
    }

    if (resolverConfiguration.shouldIncludeModules()) {
        IContainer parent = pomFile.getParent();
        for (Iterator it = mavenProject.getModules().iterator(); it.hasNext();) {
            if (monitor.isCanceled()) {
                throw new OperationCanceledException();
            }
            String module = (String) it.next();
            IResource memberPom = parent.findMember(module + "/" + Maven2Plugin.POM_FILE_NAME); //$NON-NLS-1$
            if (memberPom != null && memberPom.getType() == IResource.FILE && memberPom.isAccessible()) {
                initMavenProject((IFile) memberPom, rootPomFile, mavenProjects, monitor, resolverConfiguration);
            }
        }
    }
}

From source file:org.maven.ide.eclipse.wtp.ConnectorProjectConfiguratorDelegate.java

License:Open Source License

/**
 * @see org.maven.ide.eclipse.wtp.IProjectConfiguratorDelegate#setModuleDependencies(org.eclipse.core.resources.IProject, org.apache.maven.project.MavenProject, org.eclipse.core.runtime.IProgressMonitor)
 *//* ww w .ja  va  2 s.  co  m*/
public void setModuleDependencies(IProject project, MavenProject mavenProject, IProgressMonitor monitor)
        throws CoreException {

    IVirtualComponent rarComponent = ComponentCore.createComponent(project);

    Set<IVirtualReference> newRefs = new LinkedHashSet<IVirtualReference>();

    Set<Artifact> artifacts = mavenProject.getArtifacts();

    //Adding artifact references in .component. See https://bugs.eclipse.org/bugs/show_bug.cgi?id=297777#c1
    for (Artifact artifact : artifacts) {
        ArtifactHelper.fixArtifactHandler(artifact.getArtifactHandler());
        //Don't deploy pom, non runtime or optional dependencies
        if ("pom".equals(artifact.getType()) || !SCOPE_FILTER_RUNTIME.include(artifact)
                || artifact.isOptional()) {
            continue;
        }

        IMavenProjectFacade workspaceDependency = projectManager.getMavenProject(artifact.getGroupId(),
                artifact.getArtifactId(), artifact.getVersion());

        if (workspaceDependency != null && !workspaceDependency.getProject().equals(project)
                && workspaceDependency.getFullPath(artifact.getFile()) != null) {
            //artifact dependency is a workspace project
            IProject depProject = preConfigureDependencyProject(workspaceDependency, monitor);
            if (ModuleCoreNature.isFlexibleProject(depProject)) {
                newRefs.add(createReference(rarComponent, depProject, artifact));
            }
        } else {
            //artifact dependency should be added as a JEE module, referenced with M2_REPO variable 
            newRefs.add(createReference(rarComponent, artifact));
        }
    }

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

    //Only change the project references if they've changed
    if (hasChanged(rarComponent.getReferences(), newRefsArray)) {
        rarComponent.setReferences(newRefsArray);
    }
}

From source file:org.maven.ide.eclipse.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 . j  a  v  a 2 s  .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.getDefault().getMavenRuntimeManager(), mavenMarkerManager);

    Set<IVirtualReference> references = new LinkedHashSet<IVirtualReference>();
    List<IMavenProjectFacade> exportedDependencies = getWorkspaceDependencies(project, mavenProject);
    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);
            }
        } 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;
        }
    }

    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.maven.ide.eclipse.wtp.WebProjectConfiguratorDelegate.java

License:Open Source License

public void configureClasspath(IProject project, MavenProject mavenProject, IClasspathDescriptor classpath,
        IProgressMonitor monitor) throws CoreException {

    //Improve skinny war support by generating the manifest classpath
    //similar to mvn eclipse:eclipse 
    //http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html
    WarPluginConfiguration config = new WarPluginConfiguration(mavenProject, project);
    IPackagingConfiguration opts = new PackagingConfiguration(config.getPackagingIncludes(),
            config.getPackagingExcludes());

    /*/*w ww.jav  a2s. c  o m*/
     * Need to take care of three separate cases
     * 
     * 1. remove any project dependencies (they are represented as J2EE module dependencies)
     * 2. add non-dependency attribute for entries originated by artifacts with
     *    runtime, system, test scopes or optional dependencies (not sure about the last one)
     * 3. make sure all dependency JAR files have unique file names, i.e. artifactId/version collisions
     */

    Set<String> dups = new LinkedHashSet<String>();
    Set<String> names = new HashSet<String>();
    FileNameMapping fileNameMapping = config.getFileNameMapping();
    String targetDir = mavenProject.getBuild().getDirectory();

    // first pass removes projects, adds non-dependency attribute and collects colliding filenames
    Iterator<IClasspathEntryDescriptor> iter = classpath.getEntryDescriptors().iterator();
    while (iter.hasNext()) {
        IClasspathEntryDescriptor descriptor = iter.next();
        IClasspathEntry entry = descriptor.toClasspathEntry();
        String scope = descriptor.getScope();
        Artifact artifact = ArtifactHelper.getArtifact(mavenProject.getArtifacts(),
                descriptor.getArtifactKey());

        ArtifactHelper.fixArtifactHandler(artifact.getArtifactHandler());

        String deployedName = fileNameMapping.mapFileName(artifact);

        boolean isDeployed = (Artifact.SCOPE_COMPILE.equals(scope) || Artifact.SCOPE_RUNTIME.equals(scope))
                && !descriptor.isOptionalDependency() && opts.isPackaged("WEB-INF/lib/" + deployedName)
                && !isWorkspaceProject(artifact);

        // add non-dependency attribute if this classpathentry is not meant to be deployed
        // or if it's a workspace project (projects already have a reference created in configure())
        if (!isDeployed) {
            descriptor.setClasspathAttribute(NONDEPENDENCY_ATTRIBUTE.getName(),
                    NONDEPENDENCY_ATTRIBUTE.getValue());
        }

        //If custom fileName is used, then copy the artifact and rename the artifact under the build dir
        String fileName = entry.getPath().lastSegment();
        if (!deployedName.equals(fileName)) {
            IPath newPath = renameArtifact(targetDir, entry.getPath(), deployedName);
            if (newPath != null) {
                descriptor.setPath(newPath);
            }
        }

        if (!names.add(deployedName)) {
            dups.add(deployedName);
        }
    }

    // second pass disambiguates colliding entry file names
    iter = classpath.getEntryDescriptors().iterator();
    while (iter.hasNext()) {
        IClasspathEntryDescriptor descriptor = iter.next();
        IClasspathEntry entry = descriptor.toClasspathEntry();

        if (dups.contains(entry.getPath().lastSegment())) {
            String newName = descriptor.getGroupId() + "-" + entry.getPath().lastSegment();
            IPath newPath = renameArtifact(targetDir, entry.getPath(), newName);
            if (newPath != null) {
                descriptor.setPath(newPath);
            }
        }
    }
}

From source file:org.mimacom.maven.plugins.liferay.InstallServiceMojo.java

License:Apache License

private void copyJarAndDependencies(File jar, MavenProject project) throws MojoExecutionException {
    getLog().info("copying " + jar.getName() + " to " + commonLibsDirectory());
    copy(///*from  w ww.  ja  v a  2  s.  c o  m*/
            file(jar), //
            todir(commonLibsDirectory()), //
            overwrite(true)//
    );
    @SuppressWarnings("unchecked")
    Set<Artifact> dependencies = project.getArtifacts();
    for (Artifact dependency : dependencies) {
        if (dependency.getType().equals("jar") && !dependency.getScope().equals("provided")) {
            log("copying common service lib " + dependency.getFile().getName() + " to "
                    + commonLibsDirectory());
            copy(//
                    file(dependency.getFile()), //
                    todir(commonLibsDirectory()), //
                    overwrite(true)//
            );
        }
    }
}

From source file:org.mule.devkit.maven.ArtifactFilter.java

License:Open Source License

@SuppressWarnings("unchecked")
public ArtifactFilter(MavenProject project, List<Inclusion> inclusions, List<Exclusion> exclusions,
        boolean excludeMuleDependencies) {
    super();/*  w w w  . ja v a  2s .c o m*/
    projectArtifacts = Collections.unmodifiableSet(project.getArtifacts());
    includes = inclusions;
    excludes = exclusions;
    excludeMuleArtifacts = excludeMuleDependencies;
}

From source file:org.mule.tools.maven.plugin.module.analyze.DefaultModuleApiAnalyzer.java

License:Open Source License

private Map<String, Set<String>> calculateExternalDeps(MavenProject project, AnalyzerLogger analyzerLogger)
        throws IOException {
    final Map<String, Set<String>> result = new HashMap<>();
    for (Object projectArtifact : project.getArtifacts()) {
        final Artifact artifact = (Artifact) projectArtifact;
        if ("test".equals(artifact.getScope())) {
            analyzerLogger.log("Skipping test artifact: " + artifact.getFile().toString());
            continue;
        }// w  ww . j  a  va  2 s.c  o m
        final Map<String, Set<String>> artifactExternalPackageDeps = findPackageDependencies(
                artifact.getFile().toString(), analyzerLogger);

        for (String externalPackageName : artifactExternalPackageDeps.keySet()) {
            final Set<String> packageDeps = artifactExternalPackageDeps.get(externalPackageName);
            Set<String> externalPackageDeps = result.get(externalPackageName);
            if (externalPackageDeps == null) {
                externalPackageDeps = new HashSet<>();
                result.put(externalPackageName, externalPackageDeps);
            }
            externalPackageDeps.addAll(packageDeps);
        }
    }

    return result;
}

From source file:org.onos.yangtools.yang2sources.plugin.Util.java

License:Open Source License

static List<File> getClassPath(MavenProject project) {
    List<File> dependencies = Lists.newArrayList();
    for (Artifact element : project.getArtifacts()) {
        File asFile = element.getFile();
        if (isJar(asFile) || asFile.isDirectory()) {
            dependencies.add(asFile);//from   ww  w .j a  v  a  2  s  . c om
        }
    }
    return dependencies;
}