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

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

Introduction

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

Prototype

public File getFile() 

Source Link

Usage

From source file:org.jboss.maven.plugins.qstools.QSRepositoriesMojo.java

License:Apache License

private void removePreviousRepositories() throws Exception {
    getLog().info("Removing previous repositories definition...");
    for (MavenProject project : reactorProjects) {
        if (!projectUtil.isSubProjec(project)) {
            Document doc = PositionalXMLReader.readXML(new FileInputStream(project.getFile()));
            removeRepositoryDefinition(project, doc, "repositories");
            removeRepositoryDefinition(project, doc, "pluginRepositories");
            XMLUtil.writeXML(doc, project.getFile());
        }/*  w  w w  .  j a v a  2 s. c  om*/
    }
}

From source file:org.jboss.maven.plugins.qstools.QSRepositoriesMojo.java

License:Apache License

private void setupRepositories(Map<String, String> repositories, Set<String> repositoriesSelected, Rules rules)
        throws Exception {
    getLog().info("Adding selected repositories");
    for (MavenProject project : reactorProjects) {
        if (!projectUtil.isSubProjec(project)) {
            Document doc = PositionalXMLReader.readXML(new FileInputStream(project.getFile()));
            createRepositoryDefinition(project, doc, repositories, repositoriesSelected, rules, "repositories",
                    "repository", true);
            createRepositoryDefinition(project, doc, repositories, repositoriesSelected, rules,
                    "pluginRepositories", "pluginRepository", false);
            XMLUtil.writeXML(doc, project.getFile());
            getLog().debug("Sorting " + project.getFile() + "elements order");
            // Put the element at the right order
            PomElementOrderFixer pomElementOrderFixer = container.lookup(PomElementOrderFixer.class,
                    QSFixer.ROLE, "PomElementOrderFixer");
            pomElementOrderFixer.fixProject(project, doc);
        }/*from   w ww. j av  a 2s .  c  o m*/
    }

}

From source file:org.jboss.maven.plugins.qstools.QSRepositoriesMojo.java

License:Apache License

private void createRepositoryDefinition(MavenProject project, Document doc, Map<String, String> repositories,
        Set<String> repositoriesSelected, Rules rules, String repositoriesType, String repositoryType,
        boolean createComment)
        throws XPathExpressionException, SAXException, IOException, ParserConfigurationException {
    String complement = "<complement><releases>\n                <enabled>RELEASE</enabled>\n            </releases><snapshots>\n                <enabled>SNAPSHOT</enabled>\n            </snapshots></complement>";
    Node repositoriesElement = (Node) xPath.evaluate("//project/" + repositoriesType, doc, XPathConstants.NODE);
    // create repositories element if not exists
    if (repositoriesElement == null && repositoriesSelected.size() > 0) {
        Comment comment = doc.createComment(rules.getMavenRepositoryComment());
        repositoriesElement = doc.createElement(repositoriesType);
        Element projectElement = (Element) xPath.evaluate("/project", doc, XPathConstants.NODE);
        if (createComment) {
            projectElement.appendChild(comment);
            projectElement.appendChild(doc.createTextNode("\n    "));
        }//from www.j  a va  2  s. c  o m
        projectElement.appendChild(repositoriesElement);
    }
    for (String repository : repositoriesSelected) {
        getLog().debug("Adding " + repository + " to " + project.getFile());
        Element repositoryElement = doc.createElement(repositoryType);
        Element idElement = doc.createElement("id");
        idElement.setTextContent(repository);
        repositoryElement.appendChild(idElement);
        Element urlElement = doc.createElement("url");
        String[] repo = repositories.get(repository).split("[|]");
        urlElement.setTextContent(repo[0]);
        repositoryElement.appendChild(urlElement);
        String parsedComplement = complement.replace("RELEASE", repo[1]).replace("SNAPSHOT", repo[2]);
        Document d = DocumentBuilderFactory.newInstance().newDocumentBuilder()
                .parse(new InputSource(new StringReader(parsedComplement)));
        repositoryElement.appendChild(doc.importNode(d.getFirstChild().getFirstChild(), true));
        repositoryElement.appendChild(doc.importNode(d.getFirstChild().getLastChild(), true));
        repositoriesElement.appendChild(repositoryElement);
    }

}

From source file:org.jenkinsci.plugins.pipeline.maven.eventspy.handler.AbstractMavenEventHandler.java

License:Open Source License

public Xpp3Dom newElement(@Nonnull String name, @Nullable final MavenProject project) {
    Xpp3Dom projectElt = new Xpp3Dom(name);
    if (project == null) {
        return projectElt;
    }// w ww  .j a v a  2 s.c o m

    projectElt.setAttribute("name", project.getName());
    projectElt.setAttribute("groupId", project.getGroupId());
    projectElt.setAttribute("artifactId", project.getArtifactId());
    projectElt.setAttribute("version", project.getVersion());
    projectElt.setAttribute("packaging", project.getPackaging());

    if (project.getBasedir() != null) {
        try {
            projectElt.setAttribute("baseDir", project.getBasedir().getCanonicalPath());
        } catch (IOException e) {
            throw new RuntimeIOException(e);
        }
    }

    if (project.getFile() != null) {
        File projectFile = project.getFile();
        String absolutePath;
        try {
            absolutePath = projectFile.getCanonicalPath();
        } catch (IOException e) {
            throw new RuntimeIOException(e);
        }

        if (absolutePath.endsWith(File.separator + "pom.xml")
                || absolutePath.endsWith(File.separator + ".flattened-pom.xml")) {
            // JENKINS-43616: flatten-maven-plugin replaces the original pom as artifact with a .flattened-pom.xml
            // no tweak
        } else if (absolutePath.endsWith(File.separator + "dependency-reduced-pom.xml")) {
            // JENKINS-42302: maven-shade-plugin creates a temporary project file dependency-reduced-pom.xml
            // TODO see if there is a better way to implement this "workaround"
            absolutePath = absolutePath.replace(File.separator + "dependency-reduced-pom.xml",
                    File.separator + "pom.xml");
        } else if (absolutePath.endsWith(File.separator + ".git-versioned-pom.xml")) {
            // JENKINS-56666 maven-git-versioning-extension causes warnings due to temporary pom.xml file name '.git-versioned-pom.xml'
            // https://github.com/qoomon/maven-git-versioning-extension/blob/v4.1.0/src/main/java/me/qoomon/maven/gitversioning/VersioningMojo.java#L39
            // TODO see if there is a better way to implement this "workaround"
            absolutePath = absolutePath.replace(File.separator + ".git-versioned-pom.xml",
                    File.separator + "pom.xml");
        } else {
            String flattenedPomFilename = getMavenFlattenPluginFlattenedPomFilename(project);
            if (flattenedPomFilename == null) {
                logger.warn("[jenkins-event-spy] Unexpected Maven project file name '" + projectFile.getName()
                        + "', problems may occur");
            } else {
                if (absolutePath.endsWith(File.separator + flattenedPomFilename)) {
                    absolutePath = absolutePath.replace(File.separator + flattenedPomFilename,
                            File.separator + "pom.xml");
                } else {
                    logger.warn("[jenkins-event-spy] Unexpected Maven project file name '"
                            + projectFile.getName() + "', problems may occur");
                }
            }
        }
        projectElt.setAttribute("file", absolutePath);
    }

    Build build = project.getBuild();

    if (build != null) {
        Xpp3Dom buildElt = new Xpp3Dom("build");
        projectElt.addChild(buildElt);
        if (build.getOutputDirectory() != null) {
            buildElt.setAttribute("directory", build.getDirectory());
        }
        if (build.getSourceDirectory() != null) {
            buildElt.setAttribute("sourceDirectory", build.getSourceDirectory());
        }
    }

    return projectElt;
}

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 ww . ja  v a 2  s.  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 w  ww.  j  a  v a2s .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.jfrog.build.extractor.maven.BuildInfoRecorder.java

License:Apache License

private List<File> getSurefireResultsFile(MavenProject project) {
    List<File> surefireReports = Lists.newArrayList();
    File surefireDirectory = new File(new File(project.getFile().getParentFile(), "target"),
            "surefire-reports");
    String[] xmls;/*  w  w w .j a  v  a 2 s . c o m*/
    try {
        xmls = surefireDirectory.list(new FilenameFilter() {
            @Override
            public boolean accept(File dir, String name) {
                return name.endsWith("xml");
            }
        });
    } catch (Exception e) {
        logger.error("Error occurred: " + e.getMessage() + " while retrieving surefire descriptors at: "
                + surefireDirectory.getAbsolutePath(), e);
        return Lists.newArrayList();
    }
    if (xmls != null) {
        for (String xml : xmls) {
            surefireReports.add(new File(surefireDirectory, xml));
        }
    }
    return surefireReports;
}

From source file:org.jfrog.build.extractor.maven.BuildInfoRecorder.java

License:Apache License

private void addArtifactsToCurrentModule(MavenProject project, ModuleBuilder module) {
    Set<Artifact> moduleArtifacts = currentModuleArtifacts.get();
    if (moduleArtifacts == null) {
        logger.warn(//from w  w  w.  ja  va 2 s.  c o  m
                "Skipping Artifactory Build-Info module artifact addition: Null current module artifact list.");
        return;
    }

    ArtifactoryClientConfiguration.PublisherHandler publisher = conf.publisher;
    IncludeExcludePatterns patterns = new IncludeExcludePatterns(publisher.getIncludePatterns(),
            publisher.getExcludePatterns());
    boolean excludeArtifactsFromBuild = publisher.isFilterExcludedArtifactsFromBuild();

    boolean pomFileAdded = false;
    Artifact nonPomArtifact = null;
    String pomFileName = null;

    for (Artifact moduleArtifact : moduleArtifacts) {
        String artifactId = moduleArtifact.getArtifactId();
        String artifactVersion = moduleArtifact.getVersion();
        String artifactClassifier = moduleArtifact.getClassifier();
        String artifactExtension = moduleArtifact.getArtifactHandler().getExtension();
        String type = getTypeString(moduleArtifact.getType(), artifactClassifier, artifactExtension);

        String artifactName = getArtifactName(artifactId, artifactVersion, artifactClassifier,
                artifactExtension);

        ArtifactBuilder artifactBuilder = new ArtifactBuilder(artifactName).type(type);
        File artifactFile = moduleArtifact.getFile();

        if ("pom".equals(type)) {
            pomFileAdded = true;
            // For pom projects take the file from the project if the artifact file is null.
            if (moduleArtifact.equals(project.getArtifact())) {
                artifactFile = project.getFile(); // project.getFile() returns the project pom file
            }
        } else if (moduleArtifact.getMetadataList().size() > 0) {
            nonPomArtifact = moduleArtifact;
            pomFileName = StringUtils.removeEnd(artifactName, artifactExtension) + "pom";
        }

        org.jfrog.build.api.Artifact artifact = artifactBuilder.build();
        String groupId = moduleArtifact.getGroupId();
        String deploymentPath = getDeploymentPath(groupId, artifactId, artifactVersion, artifactClassifier,
                artifactExtension);
        // If excludeArtifactsFromBuild and the PatternMatcher found conflict, add the excluded artifact to the excluded artifact set.
        if (excludeArtifactsFromBuild && PatternMatcher.pathConflicts(deploymentPath, patterns)) {
            module.addExcludedArtifact(artifact);
        } else {
            module.addArtifact(artifact);
        }
        if (isPublishArtifacts(artifactFile)) {
            addDeployableArtifact(artifact, artifactFile, moduleArtifact.getGroupId(), artifactId,
                    artifactVersion, artifactClassifier, artifactExtension);
        }
    }
    /*
     * In case of non packaging Pom project module, we need to create the pom file from the ProjectArtifactMetadata on the Artifact
     */
    if (!pomFileAdded && nonPomArtifact != null) {
        String deploymentPath = getDeploymentPath(nonPomArtifact.getGroupId(), nonPomArtifact.getArtifactId(),
                nonPomArtifact.getVersion(), nonPomArtifact.getClassifier(), "pom");

        addPomArtifact(nonPomArtifact, module, patterns, deploymentPath, pomFileName,
                excludeArtifactsFromBuild);
    }
}

From source file:org.jszip.maven.RunMojo.java

License:Apache License

private long processResourceSourceChanges(List<MavenProject> reactorProjects, MavenProject project,
        long lastModified) throws ArtifactFilterException {
    long newLastModified = lastModified;
    getLog().debug("Last modified for resource sources = " + lastModified);

    Set<File> checked = new HashSet<File>();
    for (Artifact a : getOverlayArtifacts(project, scope)) {
        MavenProject p = findProject(reactorProjects, a);
        if (p == null || p.getBuild() == null || p.getBuild().getResources() == null) {
            continue;
        }//from   ww  w .j a v a 2 s  .c om
        boolean changed = false;
        boolean changedFiltered = false;
        for (org.apache.maven.model.Resource r : p.getBuild().getResources()) {
            File dir = new File(r.getDirectory());
            getLog().debug("Checking last modified for " + dir);
            if (checked.contains(dir)) {
                continue;
            }
            checked.add(dir);
            long dirLastModified = recursiveLastModified(dir);
            if (lastModified < dirLastModified) {
                changed = true;
                if (r.isFiltering()) {
                    changedFiltered = true;
                }
            }
        }
        if (changedFiltered) {
            getLog().info("Detected change in resources of " + ArtifactUtils.versionlessKey(a) + "...");
            getLog().debug("Resource filtering is used by project, invoking Maven to handle update");
            // need to let Maven handle it as its the only (although slower) safe way to do it right with filters
            InvocationRequest request = new DefaultInvocationRequest();
            request.setPomFile(p.getFile());
            request.setInteractive(false);
            request.setRecursive(false);
            request.setGoals(Collections.singletonList("process-resources"));

            Invoker invoker = new DefaultInvoker();
            invoker.setLogger(new MavenProxyLogger());
            try {
                invoker.execute(request);
                newLastModified = System.currentTimeMillis();
                getLog().info("Change in resources of " + ArtifactUtils.versionlessKey(a) + " processed");
            } catch (MavenInvocationException e) {
                getLog().info(e);
            }
        } else if (changed) {
            getLog().info("Detected change in resources of " + ArtifactUtils.versionlessKey(a) + "...");
            getLog().debug("Resource filtering is not used by project, handling update ourselves");
            // can do it fast ourselves
            MavenResourcesExecution mavenResourcesExecution = new MavenResourcesExecution(p.getResources(),
                    new File(p.getBuild().getOutputDirectory()), p,
                    p.getProperties().getProperty("project.build.sourceEncoding"), Collections.emptyList(),
                    Collections.<String>emptyList(), session);
            try {
                mavenResourcesFiltering.filterResources(mavenResourcesExecution);
                newLastModified = System.currentTimeMillis();
                getLog().info("Change in resources of " + ArtifactUtils.versionlessKey(a) + " processed");
            } catch (MavenFilteringException e) {
                getLog().info(e);
            }
        }
    }
    return newLastModified;
}

From source file:org.jszip.maven.RunMojo.java

License:Apache License

private List<MavenProject> buildReactorProjects() throws Exception {

    List<MavenProject> projects = new ArrayList<MavenProject>();
    for (MavenProject p : reactorProjects) {
        ProjectBuildingRequest request = ProjectBuildingRequestCreator.create(session);

        request.setProcessPlugins(true);
        request.setProfiles(request.getProfiles());
        request.setActiveProfileIds(session.getRequest().getActiveProfiles());
        request.setInactiveProfileIds(session.getRequest().getInactiveProfiles());
        request.setRemoteRepositories(session.getRequest().getRemoteRepositories());
        request.setSystemProperties(session.getSystemProperties());
        request.setUserProperties(session.getUserProperties());
        request.setRemoteRepositories(session.getRequest().getRemoteRepositories());
        request.setPluginArtifactRepositories(session.getRequest().getPluginArtifactRepositories());
        request.setLocalRepository(localRepository);
        request.setBuildStartTime(session.getRequest().getStartTime());
        request.setResolveDependencies(true);
        request.setValidationLevel(ModelBuildingRequest.VALIDATION_LEVEL_STRICT);
        projects.add(projectBuilder.build(p.getFile(), request).getProject());
    }/*  w ww  .java  2 s.c o  m*/
    return new ProjectSorter(projects).getSortedProjects();
}