diff --git a/README.md b/README.md
index e514584..6f2f00a 100644
--- a/README.md
+++ b/README.md
@@ -37,11 +37,11 @@ version.patch=0
version.prerelease=beta
```
-[View Example](https://github.com/ethauvin/semver/tree/master/example)
+[View Example](tree/master/examples)
## Template
-Upon running the annotation processor, a source file [`GeneratedVersion.java`](https://github.com/ethauvin/semver/blob/master/example/src/generated/java/net/thauvin/erik/semver/example/GeneratedVersion.java) is automatically generated with static methods to access the semantic version data. The source is based on a fully customizable [Mustache](https://mustache.github.io/) template.
+Upon running the annotation processor, a source file [`GeneratedVersion.java`](blob/master/example/src/generated/java/net/thauvin/erik/semver/example/GeneratedVersion.java) is automatically generated with static methods to access the semantic version data. The source is based on a fully customizable [Mustache](https://mustache.github.io/) template.
To use your own template, simply create a `version.mustache` file. The processor will automatically look for it.
@@ -55,7 +55,7 @@ public class A {
### Default Template
-The [default template](https://github.com/ethauvin/semver/blob/master/src/main/resources/semver.mustache) implements the following static fields:
+The [default template](blob/master/src/main/resources/semver.mustache) implements the following static fields:
Field | Description | Example
:--------------|:---------------------------------|:-----------------
@@ -158,7 +158,7 @@ example.meta=
# ...
```
-> :warning: `keysPrefix` is a new element in `1.0.0` and may break older versions when using custom property keys.
+> :warning: `keysPrefix` is a new element in `1.1.0` and may break older versions when using custom property keys.
> :zap: A quick fix is to include `keysPrefix=""` in the annotation to remove the default `version.` prefix.
## Usage with Maven, Grail, Kobalt and Kotlin
@@ -200,7 +200,7 @@ compileJava.options.annotationProcessorGeneratedSourcesDirectory = file("${proje
The `GeneratedVersion.java` file will now be located in `src/generated`.
-Please look at the [build.gradle](https://github.com/ethauvin/semver/blob/master/example/build.gradle) file in the [example](https://github.com/ethauvin/semver/tree/master/example) module directory for a sample.
+Please look at the [build.gradle](blob/master/examples/java/build.gradle) file in the [Java example](tree/master/example/java) module directory for a sample.
### Kobalt
@@ -213,7 +213,7 @@ dependencies {
}
```
-Please look at the [Build.kt](https://github.com/ethauvin/semver/blob/master/example/kobalt/src/Build.kt) file in the [example](https://github.com/ethauvin/semver/tree/master/example) module directory for a sample.
+Please look at the [Build.kt](blob/master/examples/kotlin/kobalt/src/Build.kt) file in the [Kotlin example](tree/master/example/kotlin) module directory for a sample.
### Kotlin
@@ -228,9 +228,9 @@ import net.thauvin.erik.semver.Version
open class Main {
// ...
```
-The [Kotlin default template](https://github.com/ethauvin/semver/blob/master/src/main/resources/semver-kt.mustache) implements the same static fields and functions as the [Java template](#default-template).
+The [Kotlin default template](blob/master/src/main/resources/semver-kt.mustache) implements the same static fields and functions as the [Java template](#default-template).
-Please look at the [Example for Kotlin](https://github.com/ethauvin/semver-example-kotlin) project for samples on using Gradle ([build.gradle](https://github.com/ethauvin/semver-example-kotlin/blob/master/build.gradle)) and Kobalt ([Build.kt](https://github.com/ethauvin/semver-example-kotlin/blob/master/kobalt/src/Build.kt)).
+Please look at the [Kotlin example](tree/master/examples/Kotlin) project for samples on using Gradle ([build.gradle.kts](blob/master/examples/kotlin/build.gradle.kts)) and Kobalt ([Build.kt](blob/master/examples/kotlin/kobalt/src/Build.kt)).
## Auto-Increment
diff --git a/build.gradle b/build.gradle
index 027e847..2197cb5 100644
--- a/build.gradle
+++ b/build.gradle
@@ -212,6 +212,7 @@ task pandoc(type: Exec) {
'-s',
'-c', 'github-pandoc.css',
'-o', 'docs/README.html',
+ '-H', 'docs/header.inc',
'README.md']
if (Os.isFamily(Os.FAMILY_WINDOWS)) {
commandLine(['cmd', '/c', 'pandoc'] + pandoc_args)
diff --git a/docs/README.html b/docs/README.html
index 7564fa1..3808cb0 100644
--- a/docs/README.html
+++ b/docs/README.html
@@ -47,13 +47,14 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Inf
+
An annotation processor that automatically generates a GeneratedVersion
class based on a Mustache template and containing the semantic version (major, minor, patch, etc.) that is read from a Properties
file or defined in the annotation.
This processor was inspired by Cédric Beust's version-processor.
+This processor was inspired by Cédric Beust's version-processor and works well in conjunction with the Semantic Version Plugin for Gralde.
Upon running the annotation processor, a source file GeneratedVersion.java
is automatically generated with static methods to access the semantic version data. The source is based on a fully customizable Mustache template.
Upon running the annotation processor, a source file GeneratedVersion.java
is automatically generated with static methods to access the semantic version data. The source is based on a fully customizable Mustache template.
To use your own template, simply create a version.mustache
file. The processor will automatically look for it.
To specify your own template name, use:
@Version(template = "version.mustache")
public class A {
// ...
The default template implements the following static fields:
+The default template implements the following static fields:
Either java or kt for Kotlin. |
java |
||
keysPrefix |
++ | The prefix for all property keys. | +version. |
+
In order to easily incorporate with existing projects, the property keys may be assigned custom values:
@Version(
properties = "example.properties",
- majorKey = "example.major",
- minorKey = "example.minor",
- patchKey = "example.patch",
- preReleaseKey = "example.prerelease",
- buildMetaKey = "example.buildmeta",
- projectKey = "example.project"
+ keysPrefix = "example."
+ majorKey = "maj",
+ minorKey = "min",
+ patchKey = "build",
+ preReleaseKey = "rel",
+ buildMetaKey = "meta",
+ projectKey = "project"
)
public class Example {
// ...
# example.properties
example.project=Example
-example.major=1
-example.minor=0
-example.patch=0
+example.maj=1
+example.min=0
+example.build=0
+example.rel=beta
+example.meta=
# ...
+⚠️
+keysPrefix
is a new element in1.1.0
and may break older versions when using custom property keys.
+⚡ A quick fix is to includekeysPrefix=""
in the annotation to remove the defaultversion.
prefix.
To install and run from Maven, configure an artifact as follows:
@@ -348,38 +362,22 @@ code > span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* InfTo install and run from Gradle, add the following to the build.gradle
file:
dependencies {
+ annotationProcessor 'net.thauvin.erik:semver:1.0.1'
compileOnly 'net.thauvin.erik:semver:1.0.1'
}
The GeneratedVersion
class will be automatically created in the build/generated
directory upon compiling.
In order to also incorporate the generated source code into the source tree
, use the EWERK Annotation Processor Plugin. Start by adding the following to the very top of the build.gradle
file:
plugins {
- id "com.ewerk.gradle.plugins.annotation-processor" version "1.0.4"
-}
-Then add the following to the build.gradle
file:
dependencies {
- compileOnly 'net.thauvin.erik:semver:1.0.1'
-}
-
-annotationProcessor {
- library 'net.thauvin.erik:semver:1.0.1'
- processor 'net.thauvin.erik.semver.VersionProcessor'
- // sourcesDir 'src/generated/java'
-}
-
-compileJava {
- // Disable the classpath processor
- options.compilerArgs << '-proc:none'
-}
-The plugin implements a separate compile task that only runs the annotation processor and is executed during the build phase.
-Please look at the build.gradle file in the example module directory for a sample.
+In order to also incorporate the generated source code into the source tree
, add the following to the very top of the build.gradle
file:
compileJava.options.annotationProcessorGeneratedSourcesDirectory = file("${projectDir}/src/generated")
+The GeneratedVersion.java
file will now be located in src/generated
.
Please look at the build.gradle file in the Java example module directory for a sample.
To install and run from Kobalt, add the following to the Build.kt
file:
dependencies {
apt("net.thauvin.erik:semver:1.0.1")
compileOnly("net.thauvin.erik:semver:1.0.1")
}
-Please look at the Build.kt file in the example module directory for a sample.
+Please look at the Build.kt file in the Kotlin example module directory for a sample.
The annotation processor also supports Kotlin.
To generate a Kotlin version file, simply specify the type
as follows:
The Kotlin default template implements the same static fields and functions as the Java template.
-Please look at the Example for Kotlin project for samples on using Gradle (build.gradle) and Kobalt (Build.kt).
-Incrementing the version is best left to your favorite build system.
-For a solution using Gradle, please have a look at the build.gradle file in the example module directory. To run the example with patch version auto-incrementing, issue the following command:
-gradle release run
-For a solution using Kobalt look at my Property File Editor plug-in.
+The Kotlin default template implements the same static fields and functions as the Java template.
+Please look at the Kotlin example project for samples on using Gradle (build.gradle.kts) and Kobalt (Build.kt).
+Incrementing the version is best left to your favorite build system. For a solution using Gradle, please have a look at the Semver Version Plugin for Gradle.