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