List of usage examples for org.apache.maven.project MavenProject getArtifact
public Artifact getArtifact()
From source file:org.renjin.gcc.maven.GccBridgeHelper.java
License:Open Source License
public static void archiveHeaders(Log log, MavenProject project, File... includeDirectories) throws MojoExecutionException { File outputDir = new File(project.getBuild().getDirectory()); File archiveFile = new File(outputDir, project.getBuild().getFinalName() + "-headers.jar"); ensureDirExists(outputDir);// w ww. java2 s . c o m try (JarOutputStream output = new JarOutputStream(new FileOutputStream(archiveFile))) { for (File includeDirectory : includeDirectories) { if (includeDirectory.exists()) { log.info("Archiving headers from " + includeDirectory.getAbsolutePath()); archiveFiles(output, includeDirectory, ""); } } } catch (IOException e) { throw new MojoExecutionException("Failed to create headers archive", e); } Artifact artifact = new AttachedArtifact(project.getArtifact(), "jar", "headers", new HeaderArtifactHandler()); artifact.setFile(archiveFile); artifact.setResolved(true); project.addAttachedArtifact(artifact); }
From source file:org.revapi.maven.AbstractVersionModifyingMojo.java
License:Apache License
@Override public void execute() throws MojoExecutionException, MojoFailureException { if (skip) {/* ww w . j a v a 2s . com*/ return; } AnalysisResults analysisResults; if (!initializeComparisonArtifacts()) { //we've got non-file artifacts, for which there is no reason to run analysis DefaultArtifact oldArtifact = new DefaultArtifact(oldArtifacts[0]); analysisResults = new AnalysisResults(ApiChangeLevel.NO_CHANGE, oldArtifact.getVersion()); } else { analysisResults = analyzeProject(project); } if (analysisResults == null) { return; } ApiChangeLevel changeLevel = analysisResults.apiChangeLevel; if (singleVersionForAllModules) { File changesFile = getChangesFile(); try (PrintWriter out = new PrintWriter(new FileOutputStream(changesFile, true))) { out.println( project.getArtifact().toString() + "=" + changeLevel + "," + analysisResults.baseVersion); } catch (IOException e) { throw new MojoExecutionException("Failure while updating the changes tracking file.", e); } } else { Version v = nextVersion(analysisResults.baseVersion, changeLevel); updateProjectVersion(project, v); } if (singleVersionForAllModules && project.equals(mavenSession.getProjects().get(mavenSession.getProjects().size() - 1))) { try (BufferedReader rdr = new BufferedReader(new FileReader(getChangesFile()))) { Map<String, AnalysisResults> projectChanges = new HashMap<>(); String line; while ((line = rdr.readLine()) != null) { int equalsIdx = line.indexOf('='); String projectGav = line.substring(0, equalsIdx); String changeAndBaseVersion = line.substring(equalsIdx + 1); int commaIdx = changeAndBaseVersion.indexOf(','); String change = changeAndBaseVersion.substring(0, commaIdx); String baseVersion = changeAndBaseVersion.substring(commaIdx + 1); changeLevel = ApiChangeLevel.valueOf(change); projectChanges.put(projectGav, new AnalysisResults(changeLevel, baseVersion)); } //establish the tree hierarchy of the projects Set<MavenProject> roots = new HashSet<>(); Map<MavenProject, Set<MavenProject>> children = new HashMap<>(); Deque<MavenProject> unprocessed = new ArrayDeque<>(mavenSession.getProjects()); while (!unprocessed.isEmpty()) { MavenProject pr = unprocessed.pop(); if (!projectChanges.containsKey(pr.getArtifact().toString())) { continue; } MavenProject pa = pr.getParent(); if (roots.contains(pa)) { roots.remove(pr); AnalysisResults paR = projectChanges.get(pa.getArtifact().toString()); AnalysisResults prR = projectChanges.get(pr.getArtifact().toString()); if (prR.apiChangeLevel.ordinal() > paR.apiChangeLevel.ordinal()) { paR.apiChangeLevel = prR.apiChangeLevel; } children.get(pa).add(pr); } else { roots.add(pr); } children.put(pr, new HashSet<MavenProject>()); } Iterator<MavenProject> it = roots.iterator(); while (it.hasNext()) { Deque<MavenProject> tree = new ArrayDeque<>(); MavenProject p = it.next(); tree.add(p); it.remove(); AnalysisResults results = projectChanges.get(p.getArtifact().toString()); Version v = nextVersion(results.baseVersion, results.apiChangeLevel); while (!tree.isEmpty()) { MavenProject current = tree.pop(); updateProjectVersion(current, v); Set<MavenProject> c = children.get(current); if (c != null) { for (MavenProject cp : c) { updateProjectParentVersion(cp, v); } tree.addAll(c); } } } } catch (IOException e) { throw new MojoExecutionException("Failure while reading the changes tracking file.", e); } } }
From source file:org.revapi.maven.Analyzer.java
License:Apache License
public static String getProjectArtifactCoordinates(MavenProject project, RepositorySystemSession session, String versionOverride) { org.apache.maven.artifact.Artifact artifact = project.getArtifact(); String extension = session.getArtifactTypeRegistry().get(artifact.getType()).getExtension(); String version = versionOverride == null ? project.getVersion() : versionOverride; if (artifact.hasClassifier()) { return project.getGroupId() + ":" + project.getArtifactId() + ":" + extension + ":" + artifact.getClassifier() + ":" + version; } else {/*from w w w . j a v a2s.c o m*/ return project.getGroupId() + ":" + project.getArtifactId() + ":" + extension + ":" + version; } }
From source file:org.revapi.maven.ReportAggregateMojo.java
License:Apache License
private ProjectVersions getRunConfig(MavenProject project) { ProjectVersions ret = new ProjectVersions(); Plugin revapiPlugin = findRevapi(project); if (revapiPlugin == null) { return ret; }//from w ww . j a v a 2s .c o m Xpp3Dom pluginConfig = (Xpp3Dom) revapiPlugin.getConfiguration(); String[] oldArtifacts = getArtifacts(pluginConfig, "oldArtifacts"); String[] newArtifacts = getArtifacts(pluginConfig, "newArtifacts"); String oldVersion = getValueOfChild(pluginConfig, "oldVersion"); if (oldVersion == null) { oldVersion = System.getProperties().getProperty(Props.oldVersion.NAME, Props.oldVersion.DEFAULT_VALUE); } String newVersion = getValueOfChild(pluginConfig, "newVersion"); if (newVersion == null) { newVersion = System.getProperties().getProperty(Props.newVersion.NAME, project.getVersion()); } String defaultOldArtifact = Analyzer.getProjectArtifactCoordinates(project, oldVersion); String defaultNewArtifact = Analyzer.getProjectArtifactCoordinates(project, newVersion); if (oldArtifacts == null || oldArtifacts.length == 0) { if (!project.getArtifact().getArtifactHandler().isAddedToClasspath()) { return ret; } oldArtifacts = new String[] { defaultOldArtifact }; } if (newArtifacts == null || newArtifacts.length == 0) { if (!project.getArtifact().getArtifactHandler().isAddedToClasspath()) { return ret; } newArtifacts = new String[] { defaultNewArtifact }; } String versionRegexString = getValueOfChild(pluginConfig, "versionFormat"); Pattern versionRegex = versionRegexString == null ? null : Pattern.compile(versionRegexString); DefaultRepositorySystemSession session = new DefaultRepositorySystemSession(repositorySystemSession); session.setDependencySelector(new ScopeDependencySelector("compile", "provided")); session.setDependencyTraverser(new ScopeDependencyTraverser("compile", "provided")); if (alwaysCheckForReleaseVersion) { session.setUpdatePolicy(RepositoryPolicy.UPDATE_POLICY_ALWAYS); } ArtifactResolver resolver = new ArtifactResolver(repositorySystem, session, mavenSession.getCurrentProject().getRemoteProjectRepositories()); Function<String, Artifact> resolve = gav -> { try { return Analyzer.resolveConstrained(project, gav, versionRegex, resolver); } catch (VersionRangeResolutionException | ArtifactResolutionException e) { getLog().warn("Could not resolve artifact '" + gav + "' with message: " + e.getMessage()); return null; } }; ret.oldGavs = Stream.of(oldArtifacts).map(resolve).filter(f -> f != null).toArray(Artifact[]::new); ret.newGavs = Stream.of(newArtifacts).map(resolve).filter(f -> f != null).toArray(Artifact[]::new); return ret; }
From source file:org.scoverage.plugin.SCoverageForkedLifecycleConfigurator.java
License:Apache License
/** * Configures project and dependent modules in multi-module project when entering forked {@code scoverage} * life cycle.// w w w .ja va 2 s .c om * * @param project Maven project in {@code scoverage} forked life cycle. * @param reactorProjects all reactor Maven projects. * @param additionalProjectPropertiesMap additional project properties to set. */ public static void afterForkedLifecycleEnter(MavenProject project, List<MavenProject> reactorProjects, Map<String, String> additionalProjectPropertiesMap) { File classesDirectory = new File(project.getBuild().getOutputDirectory()); File scoverageClassesDirectory = new File(classesDirectory.getParentFile(), "scoverage-" + classesDirectory.getName()); project.getArtifact().setFile(null); project.getBuild().setOutputDirectory(scoverageClassesDirectory.getAbsolutePath()); if (additionalProjectPropertiesMap != null) { for (Map.Entry<String, String> entry : additionalProjectPropertiesMap.entrySet()) { project.getProperties().put(entry.getKey(), entry.getValue()); } } for (MavenProject reactorProject : reactorProjects) { if (reactorProject != project) { if (reactorProject.getProperties().containsKey(PROP_FORKED_OUTPUT_DIRECTORY)) { String forkedOutputDirectory = (String) reactorProject.getProperties() .remove/* get */(PROP_FORKED_OUTPUT_DIRECTORY); reactorProject.getProperties().put(PROP_ORIG_OUTPUT_DIRECTORY, reactorProject.getBuild().getOutputDirectory()); reactorProject.getBuild().setOutputDirectory(forkedOutputDirectory); } if (reactorProject.getProperties().containsKey(PROP_FORKED_ARTIFACT_FILE)) { String forkedArtifactFilePath = (String) reactorProject.getProperties() .remove/* get */(PROP_FORKED_ARTIFACT_FILE); File originalArtifactFile = reactorProject.getArtifact().getFile(); reactorProject.getProperties().put(PROP_ORIG_ARTIFACT_FILE, originalArtifactFile == null ? "" : originalArtifactFile.getAbsolutePath()); reactorProject.getArtifact() .setFile("".equals(forkedArtifactFilePath) ? null : new File(forkedArtifactFilePath)); } } } }
From source file:org.scoverage.plugin.SCoverageForkedLifecycleConfigurator.java
License:Apache License
/** * Restores original configuration after leaving forked {@code scoverage} life cycle. * <br>// www . j av a 2 s . c o m * {@code project} is a project in default life cycle, {@code project.getExecutionProject()} * is a project in just finished forked {@code scoverage} life cycle. * * @param project Maven project in default life cycle. * @param reactorProjects all reactor Maven projects. */ public static void afterForkedLifecycleExit(MavenProject project, List<MavenProject> reactorProjects) { String forkedOutputDirectory = project.getExecutionProject().getBuild().getOutputDirectory(); project.getProperties().put(PROP_FORKED_OUTPUT_DIRECTORY, forkedOutputDirectory); File forkedArtifactFile = project.getExecutionProject().getArtifact().getFile(); project.getProperties().put(PROP_FORKED_ARTIFACT_FILE, forkedArtifactFile != null ? forkedArtifactFile.getAbsolutePath() : ""); // Restore changed outputDirectory and artifact.file in other reactor projects for (MavenProject reactorProject : reactorProjects) { if (reactorProject != project) { if (reactorProject.getProperties().containsKey(PROP_ORIG_OUTPUT_DIRECTORY)) { String originalOutputDirectory = (String) reactorProject.getProperties() .remove(PROP_ORIG_OUTPUT_DIRECTORY); forkedOutputDirectory = reactorProject.getBuild().getOutputDirectory(); reactorProject.getProperties().put(PROP_FORKED_OUTPUT_DIRECTORY, forkedOutputDirectory); reactorProject.getBuild().setOutputDirectory(originalOutputDirectory); } if (reactorProject.getProperties().containsKey(PROP_ORIG_ARTIFACT_FILE)) { String originalArtifactFilePath = (String) reactorProject.getProperties() .remove/* get */(PROP_ORIG_ARTIFACT_FILE); forkedArtifactFile = reactorProject.getArtifact().getFile(); reactorProject.getProperties().put(PROP_FORKED_ARTIFACT_FILE, forkedArtifactFile == null ? "" : forkedArtifactFile.getAbsolutePath()); reactorProject.getArtifact().setFile( "".equals(originalArtifactFilePath) ? null : new File(originalArtifactFilePath)); } } } }
From source file:org.seasar.kvasir.plust.KvasirPlugin.java
void buildTestEnvironment(IProject project, String groupId, String artifactId, String version, IProgressMonitor monitor) throws CoreException { monitor.beginTask("Preparing test environment", 80); try {/*from w w w .j a v a2 s . c om*/ MavenProject mavenProject = plugin.getMavenProject(project.getFile(IKvasirProject.POM_FILE_NAME), monitor); monitor.worked(10); Artifact distArchive = (Artifact) plugin.executeInEmbedder( new PrepareTestEnvironmentTask(mavenProject, groupId, artifactId, version), monitor); monitor.worked(10); if (distArchive == null) { plugin.getConsole().logError("Can't resolve archive: " + distArchive); throw new CoreException(KvasirPlugin.constructStatus("Can't resolve archive: " + distArchive)); } ZipFile zipFile = null; File file = null; try { zipFile = new ZipFile(distArchive.getFile()); ZipEntry entry = zipFile .getEntry(distArchive.getArtifactId() + "-" + distArchive.getVersion() + "/kvasir.war"); if (entry == null) { throw new CoreException(KvasirPlugin.constructStatus( "Can't find kvasir.war in " + distArchive.getFile().getAbsolutePath())); } file = File.createTempFile("kvasir", ".tmp"); file.deleteOnExit(); copyZipEntryAsFile(zipFile, entry, file); IFolder webapp = project.getFolder(IKvasirProject.WEBAPP_PATH); unzip(file, webapp, true, monitor); monitor.worked(50); webapp.setDerived(true); monitor.worked(10); } catch (ZipException ex) { throw new CoreException(KvasirPlugin.constructStatus(ex)); } catch (IOException ex) { throw new CoreException(KvasirPlugin.constructStatus(ex)); } finally { if (zipFile != null) { try { zipFile.close(); } catch (IOException ex) { plugin.log(ex); } zipFile = null; } if (file != null) { file.delete(); } } // ??distribution???????? // ?????????? String targetPluginDirectoryName = mavenProject.getArtifactId() + "-" + mavenProject.getArtifact().getVersion(); IFolder targetPluginDirectory = project .getFolder(IKvasirProject.TEST_PLUGINS_PATH + "/" + targetPluginDirectoryName); if (targetPluginDirectory.exists()) { targetPluginDirectory.delete(false, new SubProgressMonitor(monitor, 1)); } } finally { monitor.done(); } }
From source file:org.semver.enforcer.AbstractEnforcerRule.java
License:Apache License
@Override public void execute(final EnforcerRuleHelper helper) throws EnforcerRuleException { final MavenProject project = getMavenProject(helper); if (shouldSkipRuleExecution(project)) { helper.getLog().debug("Skipping non " + AbstractEnforcerRule.JAR_ARTIFACT_TYPE + " or " + BUNDLE_ARTIFACT_TYPE + " artifact."); return;/*from w w w . j ava 2s . c om*/ } final Artifact previousArtifact; final Artifact currentArtifact = validateArtifact(project.getArtifact()); final Version current = Version.parse(currentArtifact.getVersion()); try { final ArtifactRepository localRepository = (ArtifactRepository) helper.evaluate("${localRepository}"); final String version; if (this.previousVersion != null) { version = this.previousVersion; helper.getLog().info("Version specified as <" + version + ">"); } else { final ArtifactMetadataSource artifactMetadataSource = (ArtifactMetadataSource) helper .getComponent(ArtifactMetadataSource.class); final List<ArtifactVersion> availableVersions = getAvailableReleasedVersions(artifactMetadataSource, project, localRepository); final List<ArtifactVersion> availablePreviousVersions = filterNonPreviousVersions(availableVersions, current); if (availablePreviousVersions.isEmpty()) { helper.getLog() .warn("No previously released version. Backward compatibility check not performed."); return; } version = availablePreviousVersions.iterator().next().toString(); helper.getLog().info("Version deduced as <" + version + "> (among all availables: " + availablePreviousVersions + ")"); } final ArtifactFactory artifactFactory = (ArtifactFactory) helper.getComponent(ArtifactFactory.class); previousArtifact = artifactFactory.createArtifact(project.getGroupId(), project.getArtifactId(), version, null, project.getArtifact().getType()); final ArtifactResolver resolver = (ArtifactResolver) helper.getComponent(ArtifactResolver.class); resolver.resolve(previousArtifact, project.getRemoteArtifactRepositories(), localRepository); validateArtifact(previousArtifact); } catch (Exception e) { helper.getLog().warn("Exception while accessing artifacts; skipping check.", e); return; } final Version previous = Version.parse(previousArtifact.getVersion()); final File previousJar = previousArtifact.getFile(); final File currentJar = currentArtifact.getFile(); compareJars(helper, previous, previousJar, current, currentJar); }
From source file:org.semver.enforcer.AbstractEnforcerRule.java
License:Apache License
/** * @param artifactMetadataSource//from www . j a v a 2 s.c o m * @param project * @param localRepository * @return all available versions from most recent to oldest * @throws ArtifactMetadataRetrievalException */ protected final List<ArtifactVersion> getAvailableReleasedVersions( final ArtifactMetadataSource artifactMetadataSource, final MavenProject project, final ArtifactRepository localRepository) throws ArtifactMetadataRetrievalException { final List<ArtifactVersion> availableVersions = artifactMetadataSource.retrieveAvailableVersions( project.getArtifact(), localRepository, project.getRemoteArtifactRepositories()); availableVersions.remove(new DefaultArtifactVersion(project.getArtifact().getVersion())); for (final Iterator<ArtifactVersion> iterator = availableVersions.iterator(); iterator.hasNext();) { final ArtifactVersion artifactVersion = iterator.next(); if (Version.parse(artifactVersion.toString()).isSnapshot()) { iterator.remove(); } } //TODO proper sorting based on Version Collections.sort(availableVersions); Collections.reverse(availableVersions); return availableVersions; }
From source file:org.semver.enforcer.AbstractEnforcerRule.java
License:Apache License
private static boolean shouldSkipRuleExecution(MavenProject project) { return !AbstractEnforcerRule.JAR_ARTIFACT_TYPE.equals(project.getArtifact().getType()) && !AbstractEnforcerRule.BUNDLE_ARTIFACT_TYPE.equals(project.getArtifact().getType()); }