diff --git a/src/it/it-use-releases-issue-583/invoker.properties b/src/it/it-use-releases-issue-583/invoker.properties new file mode 100644 index 000000000..8e97d76cf --- /dev/null +++ b/src/it/it-use-releases-issue-583/invoker.properties @@ -0,0 +1 @@ +invoker.goals=${project.groupId}:${project.artifactId}:${project.version}:use-releases -DallowRangeMatching=true -DfailIfNotReplaced=true diff --git a/src/it/it-use-releases-issue-583/pom.xml b/src/it/it-use-releases-issue-583/pom.xml new file mode 100644 index 000000000..ce037a5fa --- /dev/null +++ b/src/it/it-use-releases-issue-583/pom.xml @@ -0,0 +1,21 @@ + + 4.0.0 + + localhost + it-use-releases-issue-583 + 1.0 + pom + Skip a dependency without version + + + + + localhost + dummy-api + provided + + + + + diff --git a/src/it/it-use-releases-issue-583/verify.bsh b/src/it/it-use-releases-issue-583/verify.bsh new file mode 100644 index 000000000..73a06b17a --- /dev/null +++ b/src/it/it-use-releases-issue-583/verify.bsh @@ -0,0 +1,23 @@ +import java.io.*; +import org.codehaus.plexus.util.FileUtils; +import java.util.regex.*; + +try +{ + File file = new File( basedir, "build.log" ); + String buf = FileUtils.fileRead( file ); + Pattern p = Pattern.compile( "\\QIgnoring dependency with no version: localhost:dummy-api:jar\\E" ); + Matcher m = p.matcher( buf.toString() ); + if ( !m.find() ) + { + System.out.println( "cannot find skipping of dummy-api dependency" ); + return false; + } +} +catch( Throwable t ) +{ + t.printStackTrace(); + return false; +} + +return true; diff --git a/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java b/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java index 3114a07e0..8decb6881 100644 --- a/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java +++ b/src/main/java/org/codehaus/mojo/versions/AbstractVersionsDependencyUpdaterMojo.java @@ -188,10 +188,11 @@ public boolean isExcludeReactor() * @return true if the version starts with '${' * @since 2.8 */ - protected boolean isHandledByProperty(Dependency dependency) { - String version = dependency.getVersion(); - return version.startsWith("${"); - } + protected boolean isHandledByProperty( Dependency dependency ) + { + String version = dependency.getVersion(); + return version != null && version.startsWith( "${" ); + } /** * Try to find the dependency artifact that matches the given dependency. diff --git a/src/main/java/org/codehaus/mojo/versions/UseReleasesMojo.java b/src/main/java/org/codehaus/mojo/versions/UseReleasesMojo.java index 127bf7809..7fd4f6468 100644 --- a/src/main/java/org/codehaus/mojo/versions/UseReleasesMojo.java +++ b/src/main/java/org/codehaus/mojo/versions/UseReleasesMojo.java @@ -209,6 +209,11 @@ private void useReleases( ModifiedPomXMLEventReader pom, Collection } String version = dep.getVersion(); + if ( version == null ) + { + getLog().info( "Ignoring dependency with no version: " + toString( dep ) ); + continue; + } Matcher versionMatcher = matchSnapshotRegex.matcher( version ); if ( versionMatcher.matches() ) {