List of usage examples for org.apache.maven.artifact.versioning VersionRange createFromVersion
public static VersionRange createFromVersion(String version)
From source file:org.codehaus.mojo.versions.api.DefaultVersionsHelper.java
License:Apache License
/** * {@inheritDoc}/*w w w . j av a 2 s. c om*/ */ public PluginUpdatesDetails lookupPluginUpdates(Plugin plugin, Boolean allowSnapshots) throws ArtifactMetadataRetrievalException, InvalidVersionSpecificationException { String version = plugin.getVersion(); version = version == null ? "LATEST" : version; getLog().debug("Checking " + ArtifactUtils.versionlessKey(plugin.getGroupId(), plugin.getArtifactId()) + " for updates newer than " + version); VersionRange versionRange = VersionRange.createFromVersion(version); final boolean includeSnapshots = Boolean.TRUE.equals(allowSnapshots); final ArtifactVersions pluginArtifactVersions = lookupArtifactVersions( createPluginArtifact(plugin.getGroupId(), plugin.getArtifactId(), versionRange), true); Set<Dependency> pluginDependencies = new TreeSet<Dependency>(new DependencyComparator()); if (plugin.getDependencies() != null) { pluginDependencies.addAll(plugin.getDependencies()); } Map<Dependency, ArtifactVersions> pluginDependencyDetails = lookupDependenciesUpdates(pluginDependencies, false); return new PluginUpdatesDetails(pluginArtifactVersions, pluginDependencyDetails, includeSnapshots); }
From source file:org.codehaus.mojo.versions.api.PomHelper.java
License:Apache License
/** * Gets the parent artifact from the pom. * * @param pom The pom.//w ww.j a va2 s . c om * @param helper The helper (used to create the artifact). * @return The parent artifact or <code>null</code> if no parent is specified. * @throws XMLStreamException if something went wrong. */ public static Artifact getProjectParent(final ModifiedPomXMLEventReader pom, VersionsHelper helper) throws XMLStreamException { Stack<String> stack = new Stack<String>(); String path = ""; final Pattern matchScopeRegex = Pattern.compile("/project/parent((/groupId)|(/artifactId)|(/version))"); String groupId = null; String artifactId = null; String version = null; pom.rewind(); while (pom.hasNext()) { XMLEvent event = pom.nextEvent(); if (event.isStartElement()) { stack.push(path); final String elementName = event.asStartElement().getName().getLocalPart(); path = path + "/" + elementName; if (matchScopeRegex.matcher(path).matches()) { if ("groupId".equals(elementName)) { groupId = pom.getElementText().trim(); path = stack.pop(); } else if ("artifactId".equals(elementName)) { artifactId = pom.getElementText().trim(); path = stack.pop(); } else if ("version".equals(elementName)) { version = pom.getElementText().trim(); path = stack.pop(); } } } if (event.isEndElement()) { path = stack.pop(); } } if (groupId == null || artifactId == null || version == null) { return null; } return helper.createDependencyArtifact(groupId, artifactId, VersionRange.createFromVersion(version), "pom", null, null, false); }
From source file:org.codehaus.mojo.versions.api.PomHelper.java
License:Apache License
/** * Takes a list of {@link org.apache.maven.model.Plugin} instances and adds associations to properties used to * define versions of the plugin artifact or any of the plugin dependencies specified in the pom. * * @param helper Our helper. * @param expressionEvaluator Our expression evaluator. * @param result The map of {@link org.codehaus.mojo.versions.api.PropertyVersionsBuilder} keyed by property name. * @param plugins The list of {@link org.apache.maven.model.Plugin}. * @throws ExpressionEvaluationException if an expression cannot be evaluated. *//*from w w w.j av a 2s . c o m*/ private static void addPluginAssociations(VersionsHelper helper, ExpressionEvaluator expressionEvaluator, Map<String, PropertyVersionsBuilder> result, List<Plugin> plugins) throws ExpressionEvaluationException { if (plugins == null) { return; } for (Plugin plugin : plugins) { String version = plugin.getVersion(); if (version != null && version.contains("${") && version.indexOf('}') != -1) { version = StringUtils.deleteWhitespace(version); for (PropertyVersionsBuilder property : result.values()) { // any of these could be defined by a property final String propertyRef = "${" + property.getName() + "}"; if (version.contains(propertyRef)) { String groupId = plugin.getGroupId(); if (groupId == null || groupId.trim().length() == 0) { // group Id has a special default groupId = APACHE_MAVEN_PLUGINS_GROUPID; } else { groupId = (String) expressionEvaluator.evaluate(groupId); } String artifactId = plugin.getArtifactId(); if (artifactId == null || artifactId.trim().length() == 0) { // malformed pom continue; } else { artifactId = (String) expressionEvaluator.evaluate(artifactId); } // might as well capture the current value VersionRange versionRange = VersionRange .createFromVersion((String) expressionEvaluator.evaluate(plugin.getVersion())); property.addAssociation(helper.createPluginArtifact(groupId, artifactId, versionRange), true); if (!propertyRef.equals(version)) { addBounds(property, version, propertyRef, versionRange.toString()); } } } } addDependencyAssocations(helper, expressionEvaluator, result, plugin.getDependencies(), true); } }
From source file:org.codehaus.mojo.versions.api.PomHelper.java
License:Apache License
private static void addReportPluginAssociations(VersionsHelper helper, ExpressionEvaluator expressionEvaluator, Map<String, PropertyVersionsBuilder> result, List<ReportPlugin> reportPlugins) throws ExpressionEvaluationException { if (reportPlugins == null) { return;// w w w . j a va2 s .c o m } for (ReportPlugin plugin : reportPlugins) { String version = plugin.getVersion(); if (version != null && version.contains("${") && version.indexOf('}') != -1) { version = StringUtils.deleteWhitespace(version); for (PropertyVersionsBuilder property : result.values()) { final String propertyRef = "${" + property.getName() + "}"; if (version.contains(propertyRef)) { // any of these could be defined by a property String groupId = plugin.getGroupId(); if (groupId == null || groupId.trim().length() == 0) { // group Id has a special default groupId = APACHE_MAVEN_PLUGINS_GROUPID; } else { groupId = (String) expressionEvaluator.evaluate(groupId); } String artifactId = plugin.getArtifactId(); if (artifactId == null || artifactId.trim().length() == 0) { // malformed pom continue; } else { artifactId = (String) expressionEvaluator.evaluate(artifactId); } // might as well capture the current value VersionRange versionRange = VersionRange .createFromVersion((String) expressionEvaluator.evaluate(plugin.getVersion())); property.addAssociation(helper.createPluginArtifact(groupId, artifactId, versionRange), true); if (!propertyRef.equals(version)) { addBounds(property, version, propertyRef, versionRange.toString()); } } } } } }
From source file:org.codehaus.mojo.versions.api.PomHelper.java
License:Apache License
private static void addDependencyAssocations(VersionsHelper helper, ExpressionEvaluator expressionEvaluator, Map<String, PropertyVersionsBuilder> result, List<Dependency> dependencies, boolean usePluginRepositories) throws ExpressionEvaluationException { if (dependencies == null) { return;/*w w w . j a va 2s . co m*/ } for (Dependency dependency : dependencies) { String version = dependency.getVersion(); if (version != null && version.contains("${") && version.indexOf('}') != -1) { version = StringUtils.deleteWhitespace(version); for (PropertyVersionsBuilder property : result.values()) { final String propertyRef = "${" + property.getName() + "}"; if (version.contains(propertyRef)) { // Any of these could be defined by a property String groupId = dependency.getGroupId(); if (groupId == null || groupId.trim().length() == 0) { // malformed pom continue; } else { groupId = (String) expressionEvaluator.evaluate(groupId); } String artifactId = dependency.getArtifactId(); if (artifactId == null || artifactId.trim().length() == 0) { // malformed pom continue; } else { artifactId = (String) expressionEvaluator.evaluate(artifactId); } // might as well capture the current value VersionRange versionRange = VersionRange .createFromVersion((String) expressionEvaluator.evaluate(dependency.getVersion())); property.addAssociation(helper.createDependencyArtifact(groupId, artifactId, versionRange, dependency.getType(), dependency.getClassifier(), dependency.getScope(), dependency.isOptional()), usePluginRepositories); if (!propertyRef.equals(version)) { addBounds(property, version, propertyRef, versionRange.toString()); } } } } } }
From source file:org.codehaus.mojo.versions.branch.BranchMojo.java
License:Apache License
private Artifact branchedArtifact(GroupArtifactVersion artifact) { return new DefaultArtifact(artifact.getGroupId(), artifact.getArtifactId(), VersionRange.createFromVersion(branchedVersion(artifact.getVersion())), "compile", "pom", "", null); }
From source file:org.codehaus.mojo.versions.DisplayPluginUpdatesMojo.java
License:Apache License
/** * @throws MojoExecutionException when things go wrong * @throws MojoFailureException when things go wrong in a very bad way * @see AbstractVersionsUpdaterMojo#execute() * @since 1.0-alpha-1//ww w .j av a 2s. c o m */ public void execute() throws MojoExecutionException, MojoFailureException { logInit(); Set<String> pluginsWithVersionsSpecified; try { pluginsWithVersionsSpecified = findPluginsWithVersionsSpecified(getProject()); } catch (XMLStreamException e) { throw new MojoExecutionException(e.getMessage(), e); } catch (IOException e) { throw new MojoExecutionException(e.getMessage(), e); } Map<String, String> superPomPluginManagement = getSuperPomPluginManagement(); getLog().debug("superPom plugins = " + superPomPluginManagement); Map<String, String> parentPluginManagement = new HashMap<String, String>(); Map<String, String> parentBuildPlugins = new HashMap<String, String>(); Map<String, String> parentReportPlugins = new HashMap<String, String>(); List<MavenProject> parents = getParentProjects(getProject()); for (MavenProject parentProject : parents) { getLog().debug("Processing parent: " + parentProject.getGroupId() + ":" + parentProject.getArtifactId() + ":" + parentProject.getVersion() + " -> " + parentProject.getFile()); StringWriter writer = new StringWriter(); boolean havePom = false; Model interpolatedModel; try { Model originalModel = parentProject.getOriginalModel(); if (originalModel == null) { getLog().warn("project.getOriginalModel()==null for " + parentProject.getGroupId() + ":" + parentProject.getArtifactId() + ":" + parentProject.getVersion() + " is null, substituting project.getModel()"); originalModel = parentProject.getModel(); } try { new MavenXpp3Writer().write(writer, originalModel); writer.close(); havePom = true; } catch (IOException e) { // ignore } interpolatedModel = modelInterpolator.interpolate(originalModel, null, new DefaultProjectBuilderConfiguration() .setExecutionProperties(getProject().getProperties()), false); } catch (ModelInterpolationException e) { throw new MojoExecutionException(e.getMessage(), e); } if (havePom) { try { Set<String> withVersionSpecified = findPluginsWithVersionsSpecified( new StringBuilder(writer.toString())); Map<String, String> map = getPluginManagement(interpolatedModel); map.keySet().retainAll(withVersionSpecified); parentPluginManagement.putAll(map); map = getBuildPlugins(interpolatedModel, true); map.keySet().retainAll(withVersionSpecified); parentPluginManagement.putAll(map); map = getReportPlugins(interpolatedModel, true); map.keySet().retainAll(withVersionSpecified); parentPluginManagement.putAll(map); } catch (IOException e) { throw new MojoExecutionException(e.getMessage(), e); } catch (XMLStreamException e) { throw new MojoExecutionException(e.getMessage(), e); } } else { parentPluginManagement.putAll(getPluginManagement(interpolatedModel)); parentPluginManagement.putAll(getBuildPlugins(interpolatedModel, true)); parentPluginManagement.putAll(getReportPlugins(interpolatedModel, true)); } } Set<Plugin> plugins = getProjectPlugins(superPomPluginManagement, parentPluginManagement, parentBuildPlugins, parentReportPlugins, pluginsWithVersionsSpecified); List<String> updates = new ArrayList<String>(); List<String> lockdowns = new ArrayList<String>(); Map<ArtifactVersion, Map<String, String>> upgrades = new TreeMap<ArtifactVersion, Map<String, String>>( new MavenVersionComparator()); ArtifactVersion curMavenVersion = runtimeInformation.getApplicationVersion(); ArtifactVersion specMavenVersion = new DefaultArtifactVersion(getRequiredMavenVersion(getProject(), "2.0")); ArtifactVersion minMavenVersion = null; boolean superPomDrivingMinVersion = false; Iterator<Plugin> i = plugins.iterator(); while (i.hasNext()) { Object plugin = i.next(); String groupId = getPluginGroupId(plugin); String artifactId = getPluginArtifactId(plugin); String version = getPluginVersion(plugin); String coords = ArtifactUtils.versionlessKey(groupId, artifactId); if (version == null) { version = parentPluginManagement.get(coords); } getLog().debug(new StringBuilder().append("Checking ").append(coords).append(" for updates newer than ") .append(version).toString()); String effectiveVersion = version; VersionRange versionRange; boolean unspecified = version == null; try { versionRange = unspecified ? VersionRange.createFromVersionSpec("[0,)") : VersionRange.createFromVersionSpec(version); } catch (InvalidVersionSpecificationException e) { throw new MojoExecutionException("Invalid version range specification: " + version, e); } Artifact artifact = artifactFactory.createPluginArtifact(groupId, artifactId, versionRange); ArtifactVersion artifactVersion = null; try { // now we want to find the newest version that is compatible with the invoking version of Maven ArtifactVersions artifactVersions = getHelper().lookupArtifactVersions(artifact, true); ArtifactVersion[] newerVersions = artifactVersions .getVersions(Boolean.TRUE.equals(this.allowSnapshots)); ArtifactVersion minRequires = null; for (int j = newerVersions.length - 1; j >= 0; j--) { Artifact probe = artifactFactory.createDependencyArtifact(groupId, artifactId, VersionRange.createFromVersion(newerVersions[j].toString()), "pom", null, "runtime"); try { getHelper().resolveArtifact(probe, true); MavenProject mavenProject = projectBuilder.buildFromRepository(probe, remotePluginRepositories, localRepository); ArtifactVersion requires = new DefaultArtifactVersion( getRequiredMavenVersion(mavenProject, "2.0")); if (specMavenVersion.compareTo(requires) >= 0 && artifactVersion == null) { artifactVersion = newerVersions[j]; } if (effectiveVersion == null && curMavenVersion.compareTo(requires) >= 0) { // version was unspecified, current version of maven thinks it should use this effectiveVersion = newerVersions[j].toString(); } if (artifactVersion != null && effectiveVersion != null) { // no need to look at any older versions. break; } if (minRequires == null || minRequires.compareTo(requires) > 0) { Map<String, String> upgradePlugins = upgrades.get(requires); if (upgradePlugins == null) { upgrades.put(requires, upgradePlugins = new LinkedHashMap<String, String>()); } String upgradePluginKey = compactKey(groupId, artifactId); if (!upgradePlugins.containsKey(upgradePluginKey)) { upgradePlugins.put(upgradePluginKey, newerVersions[j].toString()); } minRequires = requires; } } catch (ArtifactResolutionException e) { // ignore bad version } catch (ArtifactNotFoundException e) { // ignore bad version } catch (ProjectBuildingException e) { // ignore bad version } } if (effectiveVersion != null) { VersionRange currentVersionRange = VersionRange.createFromVersion(effectiveVersion); Artifact probe = artifactFactory.createDependencyArtifact(groupId, artifactId, currentVersionRange, "pom", null, "runtime"); try { getHelper().resolveArtifact(probe, true); MavenProject mavenProject = projectBuilder.buildFromRepository(probe, remotePluginRepositories, localRepository); ArtifactVersion requires = new DefaultArtifactVersion( getRequiredMavenVersion(mavenProject, "2.0")); if (minMavenVersion == null || minMavenVersion.compareTo(requires) < 0) { minMavenVersion = requires; } } catch (ArtifactResolutionException e) { // ignore bad version } catch (ArtifactNotFoundException e) { // ignore bad version } catch (ProjectBuildingException e) { // ignore bad version } } } catch (ArtifactMetadataRetrievalException e) { throw new MojoExecutionException(e.getMessage(), e); } String newVersion; if (version == null && pluginsWithVersionsSpecified.contains(coords)) { // Hack ALERT! // // All this should be re-written in a less "pom is xml" way... but it'll // work for now :-( // // we have removed the version information, as it was the same as from // the super-pom... but it actually was specified. version = artifactVersion != null ? artifactVersion.toString() : null; } getLog().debug("[" + coords + "].version=" + version); getLog().debug("[" + coords + "].artifactVersion=" + artifactVersion); getLog().debug("[" + coords + "].effectiveVersion=" + effectiveVersion); getLog().debug("[" + coords + "].specified=" + pluginsWithVersionsSpecified.contains(coords)); if (version == null || !pluginsWithVersionsSpecified.contains(coords)) { version = (String) superPomPluginManagement.get(ArtifactUtils.versionlessKey(artifact)); getLog().debug("[" + coords + "].superPom.version=" + version); newVersion = artifactVersion != null ? artifactVersion.toString() : (version != null ? version : (effectiveVersion != null ? effectiveVersion : "(unknown)")); StringBuilder buf = new StringBuilder(compactKey(groupId, artifactId)); buf.append(' '); int padding = WARN_PAD_SIZE - newVersion.length() - (version != null ? FROM_SUPER_POM.length() : 0); while (buf.length() < padding) { buf.append('.'); } buf.append(' '); if (version != null) { buf.append(FROM_SUPER_POM); superPomDrivingMinVersion = true; } buf.append(newVersion); lockdowns.add(buf.toString()); } else if (artifactVersion != null) { newVersion = artifactVersion.toString(); } else { newVersion = null; } if (version != null && artifactVersion != null && newVersion != null && effectiveVersion != null && new DefaultArtifactVersion(effectiveVersion) .compareTo(new DefaultArtifactVersion(newVersion)) < 0) { StringBuilder buf = new StringBuilder(compactKey(groupId, artifactId)); buf.append(' '); int padding = INFO_PAD_SIZE - version.length() - newVersion.length() - 4; while (buf.length() < padding) { buf.append('.'); } buf.append(' '); buf.append(effectiveVersion); buf.append(" -> "); buf.append(newVersion); updates.add(buf.toString()); } } logLine(false, ""); if (updates.isEmpty()) { logLine(false, "All plugins with a version specified are using the latest versions."); } else { logLine(false, "The following plugin updates are available:"); for (String update : updates) { logLine(false, " " + update); } } logLine(false, ""); if (lockdowns.isEmpty()) { logLine(false, "All plugins have a version specified."); } else { getLog().warn("The following plugins do not have their version specified:"); for (String lockdown : lockdowns) { getLog().warn(" " + lockdown); } } logLine(false, ""); boolean noMavenMinVersion = getRequiredMavenVersion(getProject(), null) == null; boolean noExplicitMavenMinVersion = getProject().getPrerequisites() == null || getProject().getPrerequisites().getMaven() == null; if (noMavenMinVersion) { getLog().warn("Project does not define minimum Maven version, default is: 2.0"); } else if (noExplicitMavenMinVersion) { logLine(false, "Project inherits minimum Maven version as: " + specMavenVersion); } else { ArtifactVersion explicitMavenVersion = new DefaultArtifactVersion( getProject().getPrerequisites().getMaven()); if (explicitMavenVersion.compareTo(specMavenVersion) < 0) { logLine(true, "Project's effective minimum Maven (from parent) is: " + specMavenVersion); logLine(true, "Project defines minimum Maven version as: " + explicitMavenVersion); } else { logLine(false, "Project defines minimum Maven version as: " + specMavenVersion); } } logLine(false, "Plugins require minimum Maven version of: " + minMavenVersion); if (superPomDrivingMinVersion) { logLine(false, "Note: the super-pom from Maven " + curMavenVersion + " defines some of the plugin"); logLine(false, " versions and may be influencing the plugins required minimum Maven"); logLine(false, " version."); } logLine(false, ""); if ("maven-plugin".equals(getProject().getPackaging())) { if (noMavenMinVersion) { getLog().warn( "Project (which is a Maven Plugin) does not define required minimum version of Maven."); getLog().warn("Update the pom.xml to contain"); getLog().warn(" <prerequisites>"); getLog().warn(" <maven><!-- minimum version of Maven that the plugin works with --></maven>"); getLog().warn(" </prerequisites>"); getLog().warn("To build this plugin you need at least Maven " + minMavenVersion); getLog().warn( "A Maven Enforcer rule can be used to enforce this if you have not already set one up"); } else if (minMavenVersion != null && specMavenVersion.compareTo(minMavenVersion) < 0) { getLog().warn("Project (which is a Maven Plugin) targets Maven " + specMavenVersion + " or newer"); getLog().warn("but requires Maven " + minMavenVersion + " or newer to build."); getLog().warn("This may or may not be a problem. A Maven Enforcer rule can help "); getLog().warn("enforce that the correct version of Maven is used to build this plugin."); } else { logLine(false, "No plugins require a newer version of Maven than specified by the pom."); } } else { if (noMavenMinVersion) { logLine(true, "Project does not define required minimum version of Maven."); logLine(true, "Update the pom.xml to contain"); logLine(true, " <prerequisites>"); logLine(true, " <maven>" + minMavenVersion + "</maven>"); logLine(true, " </prerequisites>"); } else if (minMavenVersion != null && specMavenVersion.compareTo(minMavenVersion) < 0) { logLine(true, "Project requires an incorrect minimum version of Maven."); logLine(true, "Either change plugin versions to those compatible with " + specMavenVersion); logLine(true, "or update the pom.xml to contain"); logLine(true, " <prerequisites>"); logLine(true, " <maven>" + minMavenVersion + "</maven>"); logLine(true, " </prerequisites>"); } else { logLine(false, "No plugins require a newer version of Maven than specified by the pom."); } } for (Map.Entry<ArtifactVersion, Map<String, String>> mavenUpgrade : upgrades.entrySet()) { ArtifactVersion mavenUpgradeVersion = (ArtifactVersion) mavenUpgrade.getKey(); Map<String, String> upgradePlugins = mavenUpgrade.getValue(); if (upgradePlugins.isEmpty() || specMavenVersion.compareTo(mavenUpgradeVersion) >= 0) { continue; } logLine(false, ""); logLine(false, "Require Maven " + mavenUpgradeVersion + " to use the following plugin updates:"); for (Map.Entry<String, String> entry : upgradePlugins.entrySet()) { StringBuilder buf = new StringBuilder(" "); buf.append(entry.getKey()); buf.append(' '); String s = entry.getValue(); int padding = INFO_PAD_SIZE - s.length() + 2; while (buf.length() < padding) { buf.append('.'); } buf.append(' '); buf.append(s); logLine(false, buf.toString()); } } logLine(false, ""); }
From source file:org.codehaus.mojo.versions.UseLatestReleasesMojo.java
License:Apache License
private ArtifactVersion[] filterVersionsWithIncludes(ArtifactVersion[] newer, Artifact artifact) { List filteredNewer = new ArrayList(newer.length); for (int j = 0; j < newer.length; j++) { ArtifactVersion artifactVersion = newer[j]; Artifact artefactWithNewVersion = new DefaultArtifact(artifact.getGroupId(), artifact.getArtifactId(), VersionRange.createFromVersion(artifactVersion.toString()), artifact.getScope(), artifact.getType(), null, new DefaultArtifactHandler(), false); if (isIncluded(artefactWithNewVersion)) { filteredNewer.add(artifactVersion); }//from w ww .j a v a 2s . co m } return (ArtifactVersion[]) filteredNewer.toArray(new ArtifactVersion[filteredNewer.size()]); }
From source file:org.eclipse.che.plugin.dynamodule.stub.DynaModuleListGeneratorMojoProjectStub.java
License:Open Source License
/** Use of mockito artifact */ @Override// w w w. j a v a 2 s .c o m public Artifact getArtifact() { Artifact artifact = Mockito.mock(Artifact.class); when(artifact.getArtifactId()).thenReturn(getModel().getArtifactId()); when(artifact.getGroupId()).thenReturn(getModel().getGroupId()); when(artifact.getVersion()).thenReturn(getModel().getVersion()); when(artifact.getVersionRange()).thenReturn(VersionRange.createFromVersion(getModel().getVersion())); return artifact; }
From source file:org.freehep.maven.nar.NarIntegrationTestMojo.java
License:Open Source License
private void addProvider(SurefireBooter surefireBooter, String provider, String version, Artifact filteredArtifact) throws ArtifactNotFoundException, ArtifactResolutionException { Artifact providerArtifact = artifactFactory.createDependencyArtifact("org.apache.maven.surefire", provider, VersionRange.createFromVersion(version), "jar", null, Artifact.SCOPE_TEST); ArtifactResolutionResult result = resolveArtifact(filteredArtifact, providerArtifact); for (Iterator i = result.getArtifacts().iterator(); i.hasNext();) { Artifact artifact = (Artifact) i.next(); getLog().debug("Adding to surefire test classpath: " + artifact.getFile().getAbsolutePath()); surefireBooter.addSurefireClassPathUrl(artifact.getFile().getAbsolutePath()); }// www.j a va 2s . c om }