List of usage examples for org.apache.maven.project MavenProject getArtifacts
public Set<Artifact> getArtifacts()
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; }