You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Don Laidlaw (JIRA)" <ji...@codehaus.org> on 2009/04/21 19:41:45 UTC

[jira] Commented: (MNG-4105) Allow access to components of a parsed version through properties.

    [ http://jira.codehaus.org/browse/MNG-4105?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=173688#action_173688 ] 

Don Laidlaw commented on MNG-4105:
----------------------------------

This turns out to be extremely easy to do with a plugin. I wrote a simple plugin to take the project version and set project properties for all the version parts. I also added an OSGi compatible property. The plugin and source will be attached shortly. Meanwhile, I used it like this...

{code}			<plugin>
				<groupId>com.infor.maven</groupId>
				<artifactId>com.infor.maven.plugin.version</artifactId>
				<version>1.0.0-SNAPSHOT</version>
				<executions>
					<execution>
						<id>osgi-version</id>
						<phase>verify</phase>
						<goals>
							<goal>version</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>2.1-SNAPSHOT</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<phase>${source.plugin.phase}</phase>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<archive>
						<manifestEntries>
							<Bundle-ManifestVersion>2</Bundle-ManifestVersion>
							<Bundle-Name>${name}</Bundle-Name>
							<Bundle-SymbolicName>${artifactId}</Bundle-SymbolicName>
							<Bundle-Vendor>${organization.name}</Bundle-Vendor>
							<Bundle-Version>${versionUtil.osgi}</Bundle-Version>
							<Eclipse-SourceBundle>${artifactId};version="${versionUtil.osgi}";roots:="."</Eclipse-SourceBundle>
						</manifestEntries>
					</archive>
				</configuration>
			</plugin>

{code}

The versionUtil.osgi property referenced in the manifest is created by the first plugin. Other properties are:
* versionUtil.major
* versionUtil.minor
* versionUtil.incremental
* versionUtil.build
* versionUtil.qualifier

You can change the name of the properties by adding configuration to the plugin.

> Allow access to components of a parsed version through properties.
> ------------------------------------------------------------------
>
>                 Key: MNG-4105
>                 URL: http://jira.codehaus.org/browse/MNG-4105
>             Project: Maven 2
>          Issue Type: New Feature
>            Reporter: Paul Gier
>             Fix For: 2.2.0-M1
>
>
> There are some cases where I would like more fine grained access to the project version number.  It would be convenient if I could access individual parts of a version string using properties.  For example, a project with version "2.0.1-beta-1" I would like to be able to use the following properties or something similar:
> ${project.version} = 2.0.1-beta-1
> ${project.version.major} = 2
> ${project.version.minor} = 0
> ${project.version.incremental} = 1
> ${project.version.qualifier} = beta
> ${project.version.buildNumber} = 1

-- 
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