List of usage examples for org.apache.maven.project MavenProject getCompileSourceRoots
public List<String> getCompileSourceRoots()
From source file:org.hsc.novelSpider.bundleplugin.BundlePlugin.java
License:Apache License
protected static void addMavenSourcePath(MavenProject currentProject, Analyzer analyzer, Log log) { // pass maven source paths onto BND analyzer StringBuilder mavenSourcePaths = new StringBuilder(); if (currentProject.getCompileSourceRoots() != null) { for (Iterator<String> i = currentProject.getCompileSourceRoots().iterator(); i.hasNext();) { if (mavenSourcePaths.length() > 0) { mavenSourcePaths.append(','); }/* w ww . j a v a 2 s . com*/ mavenSourcePaths.append(i.next()); } } final String sourcePath = (String) analyzer.getProperty(Analyzer.SOURCEPATH); if (sourcePath != null) { if (sourcePath.indexOf(MAVEN_SOURCES) >= 0) { // if there is no maven source path, we do a special treatment and replace // every occurance of MAVEN_SOURCES and a following comma with an empty string if (mavenSourcePaths.length() == 0) { String cleanedSource = removeTagFromInstruction(sourcePath, MAVEN_SOURCES); if (cleanedSource.length() > 0) { analyzer.setProperty(Analyzer.SOURCEPATH, cleanedSource); } else { analyzer.unsetProperty(Analyzer.SOURCEPATH); } } else { String combinedSource = StringUtils.replace(sourcePath, MAVEN_SOURCES, mavenSourcePaths.toString()); analyzer.setProperty(Analyzer.SOURCEPATH, combinedSource); } } else if (mavenSourcePaths.length() > 0) { log.warn(Analyzer.SOURCEPATH + ": overriding " + mavenSourcePaths + " with " + sourcePath + " (add " + MAVEN_SOURCES + " if you want to include the maven sources)"); } } else if (mavenSourcePaths.length() > 0) { analyzer.setProperty(Analyzer.SOURCEPATH, mavenSourcePaths.toString()); } }
From source file:org.jacoco.maven.AggregateReportMojo.java
License:Open Source License
@Override protected List<File> getCompileSourceRoots() { final List<File> result = new ArrayList<File>(); for (MavenProject module : getIncludedModules()) { for (final Object path : module.getCompileSourceRoots()) { result.add(resolvePath((String) path)); }/* w ww . j a va2s . c o m*/ } return result; }
From source file:org.jacoco.maven.ReportSupport.java
License:Open Source License
private static List<File> getCompileSourceRoots(final MavenProject project) { final List<File> result = new ArrayList<File>(); for (final Object path : project.getCompileSourceRoots()) { result.add(resolvePath(project, (String) path)); }/* w ww . ja v a 2s .c om*/ return result; }
From source file:org.jboss.tools.maven.jbosspackaging.configurators.SarProjectConfigurator.java
License:Open Source License
protected void configureWtpUtil(IMavenProjectFacade facade, IProgressMonitor monitor) throws CoreException { // Adding utility facet on JEE projects is not allowed IProject project = facade.getProject(); MavenProject mavenProject = facade.getMavenProject(); if (!WTPProjectsUtil.isJavaProject(facade) || WTPProjectsUtil.isJavaEEProject(project) || WTPProjectsUtil.isQualifiedAsWebFragment(facade)) { return;/*from w ww .j a va 2s. com*/ } IPath[] sourceRoots = MavenProjectUtils.getSourceLocations(project, mavenProject.getCompileSourceRoots()); IPath[] resourceRoots = MavenProjectUtils.getResourceLocations(project, mavenProject.getResources()); if (!checkJavaConfiguration(project, sourceRoots, resourceRoots)) { return; } IFacetedProject facetedProject = ProjectFacetsManager.create(project, true, monitor); Set<Action> actions = new LinkedHashSet<Action>(); WTPProjectsUtil.installJavaFacet(actions, project, facetedProject); if (!facetedProject.hasProjectFacet(WTPProjectsUtil.UTILITY_FACET)) { actions.add(new IFacetedProject.Action(IFacetedProject.Action.Type.INSTALL, WTPProjectsUtil.UTILITY_10, null)); } else if (!facetedProject.hasProjectFacet(WTPProjectsUtil.UTILITY_10)) { actions.add(new IFacetedProject.Action(IFacetedProject.Action.Type.VERSION_CHANGE, WTPProjectsUtil.UTILITY_10, null)); } if (!actions.isEmpty()) { ResourceCleaner fileCleaner = new ResourceCleaner(project); try { addFoldersToClean(fileCleaner, facade); facetedProject.modify(actions, monitor); } finally { //Remove any unwanted MANIFEST.MF the Facet installation has created fileCleaner.cleanUp(); } } WTPProjectsUtil.fixMissingModuleCoreNature(project, monitor); //MNGECLIPSE-904 remove tests folder links for utility jars removeTestFolderLinks(project, mavenProject, monitor, "/"); //Remove "library unavailable at runtime" warning. WTPProjectsUtil.setNonDependencyAttributeToContainer(project, monitor); WTPProjectsUtil.removeWTPClasspathContainer(project); }
From source file:org.jetbrains.idea.maven.server.embedder.Maven2ServerEmbedderImpl.java
License:Apache License
@Nonnull private MavenServerExecutionResult createExecutionResult(File file, MavenExecutionResult result, DependencyNode rootNode) throws RemoteException { Collection<MavenProjectProblem> problems = MavenProjectProblem.createProblemsList(); Set<MavenId> unresolvedArtifacts = new HashSet<MavenId>(); validate(file, result.getExceptions(), problems, unresolvedArtifacts); MavenProject mavenProject = result.getMavenProject(); if (mavenProject == null) { return new MavenServerExecutionResult(null, problems, unresolvedArtifacts); }/*from ww w. ja v a 2s .c om*/ MavenModel model = Maven2ModelConverter.convertModel(mavenProject.getModel(), mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(), mavenProject.getArtifacts(), (rootNode == null ? Collections.emptyList() : rootNode.getChildren()), mavenProject.getExtensionArtifacts(), getLocalRepositoryFile()); RemoteNativeMavenProjectHolder holder = new RemoteNativeMavenProjectHolder(mavenProject); try { UnicastRemoteObject.exportObject(holder, 0); } catch (RemoteException e) { throw new RuntimeException(e); } Collection<String> activatedProfiles = collectActivatedProfiles(mavenProject); MavenServerExecutionResult.ProjectData data = new MavenServerExecutionResult.ProjectData(model, Maven2ModelConverter.convertToMap(mavenProject.getModel()), holder, activatedProfiles); return new MavenServerExecutionResult(data, problems, unresolvedArtifacts); }
From source file:org.jetbrains.idea.maven.server.Maven30ServerEmbedderImpl.java
License:Apache License
@Nonnull private MavenServerExecutionResult createExecutionResult(File file, MavenExecutionResult result, DependencyNode rootNode) throws RemoteException { Collection<MavenProjectProblem> problems = MavenProjectProblem.createProblemsList(); Set<MavenId> unresolvedArtifacts = new HashSet<MavenId>(); validate(file, result.getExceptions(), problems, unresolvedArtifacts); MavenProject mavenProject = result.getMavenProject(); if (mavenProject == null) return new MavenServerExecutionResult(null, problems, unresolvedArtifacts); MavenModel model = null;//from w w w . j av a 2s .c o m try { if (USE_MVN2_COMPATIBLE_DEPENDENCY_RESOLVING) { //noinspection unchecked final List<DependencyNode> dependencyNodes = rootNode == null ? Collections.<DependencyNode>emptyList() : rootNode.getChildren(); model = MavenModelConverter.convertModel(mavenProject.getModel(), mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(), mavenProject.getArtifacts(), dependencyNodes, mavenProject.getExtensionArtifacts(), getLocalRepositoryFile()); } else { final DependencyResolutionResult dependencyResolutionResult = result .getDependencyResolutionResult(); final org.sonatype.aether.graph.DependencyNode dependencyGraph = dependencyResolutionResult != null ? dependencyResolutionResult.getDependencyGraph() : null; final List<org.sonatype.aether.graph.DependencyNode> dependencyNodes = dependencyGraph != null ? dependencyGraph.getChildren() : Collections.<org.sonatype.aether.graph.DependencyNode>emptyList(); model = Maven30AetherModelConverter.convertModelWithAetherDependencyTree(mavenProject.getModel(), mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(), mavenProject.getArtifacts(), dependencyNodes, mavenProject.getExtensionArtifacts(), getLocalRepositoryFile()); } } catch (Exception e) { validate(mavenProject.getFile(), Collections.singleton(e), problems, null); } RemoteNativeMavenProjectHolder holder = new RemoteNativeMavenProjectHolder(mavenProject); try { UnicastRemoteObject.exportObject(holder, 0); } catch (RemoteException e) { throw new RuntimeException(e); } Collection<String> activatedProfiles = collectActivatedProfiles(mavenProject); MavenServerExecutionResult.ProjectData data = new MavenServerExecutionResult.ProjectData(model, MavenModelConverter.convertToMap(mavenProject.getModel()), holder, activatedProfiles); return new MavenServerExecutionResult(data, problems, unresolvedArtifacts); }
From source file:org.jetbrains.idea.maven.server.Maven32ServerEmbedderImpl.java
License:Apache License
@Nonnull private MavenServerExecutionResult createExecutionResult(File file, MavenExecutionResult result, DependencyNode rootNode) throws RemoteException { Collection<MavenProjectProblem> problems = MavenProjectProblem.createProblemsList(); Set<MavenId> unresolvedArtifacts = new HashSet<MavenId>(); validate(file, result.getExceptions(), problems, unresolvedArtifacts); MavenProject mavenProject = result.getMavenProject(); if (mavenProject == null) { return new MavenServerExecutionResult(null, problems, unresolvedArtifacts); }/*from www . j av a2 s .co m*/ MavenModel model = null; try { if (USE_MVN2_COMPATIBLE_DEPENDENCY_RESOLVING) { //noinspection unchecked final List<DependencyNode> dependencyNodes = rootNode == null ? Collections.<DependencyNode>emptyList() : rootNode.getChildren(); model = MavenModelConverter.convertModel(mavenProject.getModel(), mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(), mavenProject.getArtifacts(), dependencyNodes, mavenProject.getExtensionArtifacts(), getLocalRepositoryFile()); } else { final DependencyResolutionResult dependencyResolutionResult = result .getDependencyResolutionResult(); final org.eclipse.aether.graph.DependencyNode dependencyGraph = dependencyResolutionResult != null ? dependencyResolutionResult.getDependencyGraph() : null; final List<org.eclipse.aether.graph.DependencyNode> dependencyNodes = dependencyGraph != null ? dependencyGraph.getChildren() : Collections.<org.eclipse.aether.graph.DependencyNode>emptyList(); model = Maven3AetherModelConverter.convertModelWithAetherDependencyTree(mavenProject.getModel(), mavenProject.getCompileSourceRoots(), mavenProject.getTestCompileSourceRoots(), mavenProject.getArtifacts(), dependencyNodes, mavenProject.getExtensionArtifacts(), getLocalRepositoryFile()); } } catch (Exception e) { validate(mavenProject.getFile(), Collections.singleton(e), problems, null); } RemoteNativeMavenProjectHolder holder = new RemoteNativeMavenProjectHolder(mavenProject); try { UnicastRemoteObject.exportObject(holder, 0); } catch (RemoteException e) { throw new RuntimeException(e); } Collection<String> activatedProfiles = collectActivatedProfiles(mavenProject); MavenServerExecutionResult.ProjectData data = new MavenServerExecutionResult.ProjectData(model, MavenModelConverter.convertToMap(mavenProject.getModel()), holder, activatedProfiles); return new MavenServerExecutionResult(data, problems, unresolvedArtifacts); }
From source file:org.jetbrains.kotlin.projectsextensions.maven.classpath.MavenExtendedClassPath.java
License:Apache License
private List<String> getCompileSourceRoots(Project proj) throws DependencyResolutionRequiredException { MavenProject mavenProj = MavenHelper.getOriginalMavenProject(proj); if (mavenProj == null) { return Collections.emptyList(); }// www .j a v a2 s . c o m List<String> compileClasspath = mavenProj.getCompileSourceRoots(); if (compileClasspath == null || compileClasspath.isEmpty()) { KotlinLogger.INSTANCE.logInfo(proj.getProjectDirectory().getPath() + " compile source roots are empty"); } return compileClasspath; }
From source file:org.jfrog.jade.plugins.idea.IdeaModuleMojo.java
License:Apache License
public void rewriteModule() throws MojoExecutionException { MavenProject executedProject = getExecutedProject(); File moduleFile = new File(executedProject.getBasedir(), getIdeProjectName() + ".iml"); try {/*from ww w . ja v a 2s . co m*/ Document document = readXmlDocument(moduleFile, "module.xml"); Element module = document.getRootElement(); // TODO: how can we let the WAR/EJBs plugin hook in and provide this? // TODO: merge in ejb-module, etc. if ("war".equals(executedProject.getPackaging())) { addWebModule(module); } else if ("ejb".equals(executedProject.getPackaging())) { addEjbModule(module); } else if ("ear".equals(executedProject.getPackaging())) { addEarModule(module); } else if (isIdeaPlugin()) { addPluginModule(module); } Element component = findComponent(module, "NewModuleRootManager"); Element output = findElement(component, "output"); output.addAttribute("url", getModuleFileUrl(executedProject.getBuild().getOutputDirectory())); Element outputTest = findElement(component, "output-test"); outputTest.addAttribute("url", getModuleFileUrl(executedProject.getBuild().getTestOutputDirectory())); Element content = findElement(component, "content"); removeOldElements(content, "sourceFolder"); for (Iterator i = executedProject.getCompileSourceRoots().iterator(); i.hasNext();) { String directory = (String) i.next(); addSourceFolder(content, directory, false); } for (Iterator i = executedProject.getTestCompileSourceRoots().iterator(); i.hasNext();) { String directory = (String) i.next(); addSourceFolder(content, directory, true); } for (Iterator i = executedProject.getBuild().getResources().iterator(); i.hasNext();) { Resource resource = (Resource) i.next(); String directory = resource.getDirectory(); if (resource.getTargetPath() == null && !resource.isFiltering()) { addSourceFolder(content, directory, false); } else { getLog().info( "Not adding resource directory as it has an incompatible target path or filtering: " + directory); } } for (Iterator i = executedProject.getBuild().getTestResources().iterator(); i.hasNext();) { Resource resource = (Resource) i.next(); String directory = resource.getDirectory(); if (resource.getTargetPath() == null && !resource.isFiltering()) { addSourceFolder(content, directory, true); } else { getLog().info( "Not adding test resource directory as it has an incompatible target path or filtering: " + directory); } } removeOldElements(content, "excludeFolder"); //For excludeFolder File target = new File(executedProject.getBuild().getDirectory()); File classes = new File(executedProject.getBuild().getOutputDirectory()); File testClasses = new File(executedProject.getBuild().getTestOutputDirectory()); List sourceFolders = content.elements("sourceFolder"); List<String> filteredExcludes = new ArrayList<String>(); filteredExcludes.addAll(getExcludedDirectories(target, filteredExcludes, sourceFolders)); filteredExcludes.addAll(getExcludedDirectories(classes, filteredExcludes, sourceFolders)); filteredExcludes.addAll(getExcludedDirectories(testClasses, filteredExcludes, sourceFolders)); if (getExclude() != null) { String[] dirs = getExclude().split("[,\\s]+"); for (int i = 0; i < dirs.length; i++) { File excludedDir = new File(executedProject.getBasedir(), dirs[i]); filteredExcludes.addAll(getExcludedDirectories(excludedDir, filteredExcludes, sourceFolders)); } } // even though we just ran all the directories in the filteredExcludes List through the intelligent // getExcludedDirectories method, we never actually were guaranteed the order that they were added was // in the order required to make the most optimized exclude list. In addition, the smart logic from // that method is entirely skipped if the directory doesn't currently exist. A simple string matching // will do pretty much the same thing and make the list more concise. List<String> actuallyExcluded = new ArrayList<String>(); Collections.sort(filteredExcludes); for (Iterator i = filteredExcludes.iterator(); i.hasNext();) { String dirToExclude = i.next().toString(); String dirToExcludeTemp = dirToExclude.replace('\\', '/'); boolean addExclude = true; for (Iterator iterator = actuallyExcluded.iterator(); iterator.hasNext();) { String dir = iterator.next().toString(); String dirTemp = dir.replace('\\', '/'); if (dirToExcludeTemp.startsWith(dirTemp + "/")) { addExclude = false; break; } else if (dir.startsWith(dirToExcludeTemp + "/")) { actuallyExcluded.remove(dir); } } if (addExclude) { actuallyExcluded.add(dirToExclude); addExcludeFolder(content, dirToExclude); } } rewriteDependencies(component); writeXmlDocument(moduleFile, document); } catch (DocumentException e) { throw new MojoExecutionException("Error parsing existing IML file " + moduleFile.getAbsolutePath(), e); } catch (IOException e) { throw new MojoExecutionException("Error parsing existing IML file " + moduleFile.getAbsolutePath(), e); } }
From source file:org.jfrog.maven.annomojo.extractor.AnnoMojoDescriptorExtractor.java
License:Apache License
@SuppressWarnings({ "unchecked" }) public List<MojoDescriptor> execute(MavenProject project, PluginDescriptor pluginDescriptor) throws InvalidPluginDescriptorException { List<String> sourceRoots = project.getCompileSourceRoots(); Set<String> sourcePathElements = new HashSet<String>(); String srcRoot = null;// w w w.j av a 2 s .c om try { for (String sourceRoot : sourceRoots) { srcRoot = sourceRoot; List<File> files = FileUtils.getFiles(new File(srcRoot), "**/*.java", null, true); for (File file : files) { String path = file.getPath(); sourcePathElements.add(path); } } } catch (Exception e) { throw new InvalidPluginDescriptorException("Failed to get source files from " + srcRoot, e); } List<String> argsList = new ArrayList<String>(); argsList.add("-nocompile"); argsList.add("-cp"); StringBuilder cp = new StringBuilder(); //Add the compile classpath List<String> compileClasspathElements; try { compileClasspathElements = project.getCompileClasspathElements(); } catch (DependencyResolutionRequiredException e) { throw new InvalidPluginDescriptorException("Failed to get compileClasspathElements.", e); } for (String ccpe : compileClasspathElements) { appendToPath(cp, ccpe); } //Add the current CL classptah URL[] urls = ((URLClassLoader) getClass().getClassLoader()).getURLs(); for (URL url : urls) { String path; try { path = url.getPath(); } catch (Exception e) { throw new InvalidPluginDescriptorException("Failed to get classpath files from " + url, e); } appendToPath(cp, path); } // Attempts to add dependencies to the classpath so that parameters inherited from abstract mojos in other // projects will be processed. Set s = project.getDependencyArtifacts(); if (s != null) { for (Object untypedArtifact : project.getDependencyArtifacts()) { if (untypedArtifact instanceof Artifact) { Artifact artifact = (Artifact) untypedArtifact; File artifactFile = artifact.getFile(); if (artifactFile != null) { appendToPath(cp, artifactFile.getAbsolutePath()); } } } } String classpath = cp.toString(); debug("cl=" + classpath); argsList.add(classpath); argsList.addAll(sourcePathElements); String[] args = argsList.toArray(new String[argsList.size()]); List<MojoDescriptor> descriptors = new ArrayList<MojoDescriptor>(); MojoDescriptorTls.setDescriptors(descriptors); try { Main.process(new MojoApf(pluginDescriptor), new PrintWriter(System.out), args); } catch (Throwable t) { //TODO: [by yl] This is never caught - apt swallows the exception. //Use the TLS to hold thrown exception throw new InvalidPluginDescriptorException("Failed to extract plugin descriptor.", t); } return MojoDescriptorTls.getDescriptors(); }