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

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

Introduction

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

Prototype

public List<String> getCompileSourceRoots() 

Source Link

Usage

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();
}