[
http://jira.codehaus.org/browse/MRELEASE-416?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=167189#action_167189
]
Jens Mühlenhoff commented on MRELEASE-416:
------------------------------------------
To perform now releases in a batch mode with the ability to define the version
numbers for used snapshot releases I add an extra lookup in the
CheckDependencySnapshotsPhase.checkArtifact( Artifact artifact, Map
originalVersions, ReleaseDescriptor releaseDescriptor ) mehotd.
If there is a resolved snapshot dependency it will return false, like the
situation if you allow timestamed snapshots.
The method now looks like this:
private static boolean checkArtifact( Artifact artifact, Map
originalVersions, ReleaseDescriptor releaseDescriptor )
{
String versionlessArtifactKey = ArtifactUtils.versionlessKey(
artifact.getGroupId(), artifact.getArtifactId() );
// We are only looking at dependencies external to the project - ignore
anything found in the reactor as
// it's version will be updated
boolean result = artifact.isSnapshot() &&
!artifact.getBaseVersion().equals( originalVersions.get(
versionlessArtifactKey ) );
// check if this artifact was already successfully resolved
// FIXME: this could be done with
releaseDescriptor.getDependencyReleaseVersion if it is fixed
if( result && releaseDescriptor.getResolvedSnapshotDependencies() !=
null ) {
Map versionMap = (Map)
releaseDescriptor.getResolvedSnapshotDependencies().get( versionlessArtifactKey
);
if( versionMap != null && versionMap.get(
ReleaseDescriptor.RELEASE_KEY) != null ) {
result = false;
}
}
// If we have a snapshot but allowTimestampedSnapshots is true, accept
the artifact if the version
// indicates that it is a timestamped snapshot.
if ( result && releaseDescriptor.isAllowTimestampedSnapshots() ) {
result = artifact.getVersion().indexOf( "SNAPSHOT" ) >= 0;
}
return result;
}
> given dependencies from a release.property file not used during
> release:prepare
> -------------------------------------------------------------------------------
>
> Key: MRELEASE-416
> URL: http://jira.codehaus.org/browse/MRELEASE-416
> Project: Maven 2.x Release Plugin
> Issue Type: Bug
> Components: prepare
> Environment: Windows, maven 2.0.10
> Reporter: Jens Mühlenhoff
>
> Create a release.property file which holds all dependency you want to be
> resolved.
> Drung the release:prepare this properties are currently not used to resolve
> snapshot dependencies:
> #release configuration
> dependency.test.parent\:root.release=0.0.2
> dependency.test.parent\:root.development=0.0.6-SNAPSHOT
> The problem seams to be in the method:
> ReleaseUtils.loadResolvedDependencies( ... )
> startIndex = propertyName.lastIndexOf( "dependency." );
> The methode lastIndexOf returns in this case always 0 because the last time
> the string "dependency." was found at the starting position 0.
> Until this isn't fixed it is hard to release several projects with one script.
> Furthermore it would be good to niticed, that using the release.properties
> will only work if the resume=flas is toggeled to true.
> endIndex = propertyName.indexOf( ".development" );
> artifactVersionlessKey = propertyName.substring( startIndex,
> endIndex );
> Currently artifactVersionlessKey will contain "dependency.test.parent:root"
> which seams to be wrong.
> This line must be changed to
> artifactVersionlessKey = propertyName.substring(
> startIndex+11, endIndex );
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira