The following snippet produces a nearest to the spec manifest I could make. It makes Specification-Version contain only digits and dots and Implementation-Version have something like `git describe`.
Implementation-Version: 1.0.0-SNAPSHOT-g9440aea
Specification-Version: 1.0.0
I think this should be the ultimate configuration for maven plus git:
<properties>
<!-- GIT-DESCRIBE(1): The "g" prefix stands for "git" -->
<implementation.version>${project.version}-g${buildNumberShort}</implementation.version>
</properties>
...
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
<manifestEntries>
<Scm-Revision>${buildNumber}</Scm-Revision>
<Scm-Connection>${project.scm.connection}</Scm-Connection>
<Specification-Version>${specification.version}</Specification-Version>
<Implementation-Version>${implementation.version}</Implementation-Version>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<executions>
<execution>
<phase>validate</phase>
<goals>
<goal>create</goal>
</goals>
</execution>
</executions>
<configuration>
<revisionOnScmFailure>unknown</revisionOnScmFailure>
<doCheck>false</doCheck>
<doUpdate>false</doUpdate>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>regex-properties</id>
<goals>
<goal>regex-properties</goal>
</goals>
<configuration>
<regexPropertySettings>
<regexPropertySetting>
<!--
abbreviate git commit -->
<name>buildNumberShort</name>
<value>${buildNumber}</value>
<regex>^(.......).*$</regex>
<replacement>$1</replacement>
<failIfNoMatch>false</failIfNoMatch>
</regexPropertySetting>
<regexPropertySetting>
<!--
https://docs.oracle.com/javase/7/docs/api/java/lang/Package.html#getSpecificationVersion()
-->
<name>specification.version</name>
<value>${project.version}</value>
<regex>([0-9.]*).*</regex>
<replacement>$1</replacement>
<failIfNoMatch>true</failIfNoMatch>
</regexPropertySetting>
</regexPropertySettings>
</configuration>
</execution>
</executions>
</plugin>
On 05.02.2018 20:47, Basin Ilya wrote:
> Hi.
> I noticed that commons-parent pom has this:
>
> ${scmBranch}@r${buildNumber}; ${maven.build.timestamp}
>
> and it is used as `Implementation-build:` jar manifest entry.
>
> Is it a standard or a tradition? Is it for svn only? What about git?
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
