diff --git a/.circleci/config.yml b/.circleci/config.yml
index 6c0190e..8586151 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,4 +1,3 @@
-version: 2
defaults: &defaults
working_directory: ~/repo
docker:
@@ -6,7 +5,8 @@ defaults: &defaults
environment:
JVM_OPTS: -Xmx3200m
TERM: dumb
- CI: true
+
+version: 2.0
jobs:
build_gradle:
@@ -16,7 +16,7 @@ jobs:
- checkout
- restore_cache:
keys:
- - gradle-dependencies-{{ checksum "build.gradle.kts" }}
+ - gradle-dependencies-{{ checksum "build.gradle" }}
# fallback to using the latest cache if no exact match is found
- gradle-dependencies-
@@ -25,12 +25,12 @@ jobs:
command: ./gradlew dependencies
- save_cache:
- paths: ~/.gradle
- key: gradle-dependencies-{{ checksum "build.gradle.kts" }}
+ paths: ~/.m2
+ key: gradle-dependencies-{{ checksum "build.gradle" }}
- run:
name: Run All Checks
- command: ./gradlew check --scan
+ command: ./gradlew check
- store_artifacts:
path: build/reports/
@@ -40,6 +40,6 @@ jobs:
workflows:
version: 2
- build_gradle:
+ build_gradle_and_kobalt:
jobs:
- - build_gradle
+ - build_gradle
\ No newline at end of file
diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml
deleted file mode 100644
index f1ac387..0000000
--- a/.github/workflows/gradle.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-name: Java CI with Gradle
-
-on: [push, pull_request, workflow_dispatch]
-
-jobs:
- build:
-
- runs-on: ubuntu-latest
-
- steps:
- - uses: actions/checkout@v2
- - name: Set up JDK 1.8
- uses: actions/setup-java@v1
- with:
- java-version: 1.8
- - name: Grant execute permission for gradlew
- run: chmod +x gradlew
- - name: Test with Gradle
- run: ./gradlew check
diff --git a/.gitignore b/.gitignore
index f007981..65deb36 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,84 +1,45 @@
-.vscode/*
!.vscode/extensions.json
!.vscode/launch.json
!.vscode/settings.json
!.vscode/tasks.json
-
-__pycache__
.classpath
.DS_Store
.gradle
-.history
.kobalt
-.mtj.tmp/
-.mvn/timing.properties
-.mvn/wrapper/maven-wrapper.jar
.nb-gradle
.project
-.scannerwork
.settings
-*.class
+.vscode/*
*.code-workspace
-*.ctxt
*.iws
-*.log
-*.nar
-*.rar
*.sublime-*
-*.tar.gz
-*.zip
-/**/.idea_modules/
-/**/.idea/**/caches/build_file_checksums.ser
-/**/.idea/**/contentModel.xml
-/**/.idea/**/dataSources.ids
-/**/.idea/**/dataSources.local.xml
-/**/.idea/**/dataSources/
-/**/.idea/**/dbnavigator.xml
-/**/.idea/**/dictionaries
-/**/.idea/**/dynamic.xml
-/**/.idea/**/gradle.xml
-/**/.idea/**/httpRequests
-/**/.idea/**/libraries
-/**/.idea/**/mongoSettings.xml
-/**/.idea/**/replstate.xml
-/**/.idea/**/shelf
-/**/.idea/**/shelf/
-/**/.idea/**/sqlDataSources.xml
-/**/.idea/**/tasks.xml
-/**/.idea/**/uiDesigner.xml
-/**/.idea/**/usage.statistics.xml
-/**/.idea/**/workspace.xml
-/**/.idea/$CACHE_FILE$
-/**/.idea/$PRODUCT_WORKSPACE_FILE$
-atlassian-ide-plugin.xml
-bin/
-build/
-cmake-build-*/
-com_crashlytics_export_strings.xml
-crashlytics-build.properties
-crashlytics.properties
-dependency-reduced-pom.xml
-deploy/
-dist/
+**/.idea/**/dataSources.ids
+**/.idea/**/dataSources.local.xml
+**/.idea/**/dataSources/
+**/.idea/**/dbnavigator.xml
+**/.idea/**/dictionaries
+**/.idea/**/dynamic.xml
+**/.idea/**/gradle.xml
+**/.idea/**/libraries
+**/.idea/**/shelf
+**/.idea/**/sqlDataSources.xml
+**/.idea/**/tasks.xml
+**/.idea/**/uiDesigner.xml
+**/.idea/**/usage.statistics.xml
+**/.idea/**/workspace.xml
+**/*.class
+/bin
+/build
+/deploy
+/dist
+/gen
+/gradle.properties
+/local.properties
+/out
+/proguard-project.txt
+/project.properties
+/target
+/test-output
ehthumbs.db
-fabric.properties
-gen/
-gradle.properties
-hs_err_pid*
kobaltBuild
-kobaltw*-test
-lib/kotlin*
-libs/
-local.properties
-out/
-pom.xml.next
-pom.xml.releaseBackup
-pom.xml.tag
-pom.xml.versionsBackup
-proguard-project.txt
-project.properties
-release.properties
-target/
-test-output
-Thumbs.db
-venv
+Thumbs.db
\ No newline at end of file
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
deleted file mode 100644
index 26820aa..0000000
--- a/.gitlab-ci.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-image: gradle:alpine
-
-variables:
- GRADLE_OPTS: "-Dorg.gradle.daemon=false"
-
-before_script:
- - export GRADLE_USER_HOME=`pwd`/.gradle
-
-stages:
- - build
- - test
-
-build:
- stage: build
- script: ./gradlew --build-cache assemble
- cache:
- key: "$CI_COMMIT_REF_NAME"
- policy: push
- paths:
- - build
- - .gradle
-
-test:
- stage: test
- script: ./gradlew check
- cache:
- key: "$CI_COMMIT_REF_NAME"
- policy: pull
- paths:
- - build
- - .gradle
diff --git a/.idea/checkstyle-idea.xml b/.idea/checkstyle-idea.xml
deleted file mode 100644
index 95c433c..0000000
--- a/.idea/checkstyle-idea.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
new file mode 100644
index 0000000..283fcb4
--- /dev/null
+++ b/.idea/compiler.xml
@@ -0,0 +1,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/copyright/Erik_s_Copyright_Notice.xml b/.idea/copyright/Erik_s_Copyright_Notice.xml
index 914713f..08660a1 100644
--- a/.idea/copyright/Erik_s_Copyright_Notice.xml
+++ b/.idea/copyright/Erik_s_Copyright_Notice.xml
@@ -1,7 +1,6 @@
-
-
+
\ No newline at end of file
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
index 1607f69..3423376 100644
--- a/.idea/copyright/profiles_settings.xml
+++ b/.idea/copyright/profiles_settings.xml
@@ -1,7 +1,8 @@
-
-
-
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..dd4c951
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
deleted file mode 100644
index 98b5537..0000000
--- a/.idea/jarRepositories.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/kotlinc.xml b/.idea/kotlinc.xml
new file mode 100644
index 0000000..5806fb3
--- /dev/null
+++ b/.idea/kotlinc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 692822a..de03161 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,19 +1,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
index 4c5218b..75b2526 100644
--- a/.idea/modules.xml
+++ b/.idea/modules.xml
@@ -2,7 +2,21 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/annotation-processor-java.iml b/.idea/modules/annotation-processor-java.iml
new file mode 100644
index 0000000..008cdb4
--- /dev/null
+++ b/.idea/modules/annotation-processor-java.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/ap-examples-java.iml b/.idea/modules/ap-examples-java.iml
new file mode 100644
index 0000000..3561fcb
--- /dev/null
+++ b/.idea/modules/ap-examples-java.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/ap-examples-java_main.iml b/.idea/modules/ap-examples-java_main.iml
new file mode 100644
index 0000000..4ba373d
--- /dev/null
+++ b/.idea/modules/ap-examples-java_main.iml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/ap-examples-java_test.iml b/.idea/modules/ap-examples-java_test.iml
new file mode 100644
index 0000000..da3e2a2
--- /dev/null
+++ b/.idea/modules/ap-examples-java_test.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/ap-examples-kotlin.iml b/.idea/modules/ap-examples-kotlin.iml
new file mode 100644
index 0000000..891698d
--- /dev/null
+++ b/.idea/modules/ap-examples-kotlin.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/ap-examples-kotlin_main.iml b/.idea/modules/ap-examples-kotlin_main.iml
new file mode 100644
index 0000000..8f0d29f
--- /dev/null
+++ b/.idea/modules/ap-examples-kotlin_main.iml
@@ -0,0 +1,56 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/ap-examples-kotlin_test.iml b/.idea/modules/ap-examples-kotlin_test.iml
new file mode 100644
index 0000000..dd47cb2
--- /dev/null
+++ b/.idea/modules/ap-examples-kotlin_test.iml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/examples-java.iml b/.idea/modules/examples-java.iml
new file mode 100644
index 0000000..0c5fd0c
--- /dev/null
+++ b/.idea/modules/examples-java.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/examples-java_main.iml b/.idea/modules/examples-java_main.iml
new file mode 100644
index 0000000..1e29561
--- /dev/null
+++ b/.idea/modules/examples-java_main.iml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/examples-java_main~1.iml b/.idea/modules/examples-java_main~1.iml
new file mode 100644
index 0000000..36c031f
--- /dev/null
+++ b/.idea/modules/examples-java_main~1.iml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/examples-java_test.iml b/.idea/modules/examples-java_test.iml
new file mode 100644
index 0000000..4071a5c
--- /dev/null
+++ b/.idea/modules/examples-java_test.iml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/examples-java_test~1.iml b/.idea/modules/examples-java_test~1.iml
new file mode 100644
index 0000000..0f58715
--- /dev/null
+++ b/.idea/modules/examples-java_test~1.iml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/examples-kotlin.iml b/.idea/modules/examples-kotlin.iml
new file mode 100644
index 0000000..045b466
--- /dev/null
+++ b/.idea/modules/examples-kotlin.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/examples-kotlin_main.iml b/.idea/modules/examples-kotlin_main.iml
new file mode 100644
index 0000000..1981825
--- /dev/null
+++ b/.idea/modules/examples-kotlin_main.iml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/examples-kotlin_test.iml b/.idea/modules/examples-kotlin_test.iml
new file mode 100644
index 0000000..48f8fae
--- /dev/null
+++ b/.idea/modules/examples-kotlin_test.iml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/semver.iml b/.idea/modules/semver.iml
new file mode 100644
index 0000000..fac4bc2
--- /dev/null
+++ b/.idea/modules/semver.iml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/semver_main.iml b/.idea/modules/semver_main.iml
new file mode 100644
index 0000000..10fd523
--- /dev/null
+++ b/.idea/modules/semver_main.iml
@@ -0,0 +1,313 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules/semver_test.iml b/.idea/modules/semver_test.iml
new file mode 100644
index 0000000..8504f70
--- /dev/null
+++ b/.idea/modules/semver_test.iml
@@ -0,0 +1,298 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/scopes/Copyright.xml b/.idea/scopes/Copyright.xml
deleted file mode 100644
index 5acbcdb..0000000
--- a/.idea/scopes/Copyright.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/.idea/scopes/Sources.xml b/.idea/scopes/Sources.xml
new file mode 100644
index 0000000..73614ea
--- /dev/null
+++ b/.idea/scopes/Sources.xml
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
index 94a25f7..8306744 100644
--- a/.idea/vcs.xml
+++ b/.idea/vcs.xml
@@ -1,6 +1,7 @@
+
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 4a40469..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,30 +0,0 @@
-language: java
-dist: trusty
-
-jdk:
- - oraclejdk8
-
-addons:
- sonarcloud:
- organization: "ethauvin-github"
-
-before_cache:
- - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- - rm -fr $HOME/.gradle/caches/*/plugin-resolution/
-
-before_install:
- - chmod +x gradlew
-
-script:
- - ./gradlew check --scan
-
-cache:
- directories:
- - $HOME/.gradle/caches/
- - $HOME/.gradle/wrapper/
-
-after_success:
- - |
- if [ "${TRAVIS_TEST_RESULT}" == 0 ]; then
- ./gradlew sonarqube
- fi
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index 14c8942..0000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,68 +0,0 @@
-# Change Log
-
-## [1.0.4](https://github.com/ethauvin/semver-gradle/tree/1.0.4) (2019-07-26)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/1.0.3-beta...1.0.4)
-
-**Implemented enhancements:**
-
-- Access semver version properties in Gradle build file. [\#8](https://github.com/ethauvin/semver-gradle/issues/8)
-
-## [1.0.3-beta](https://github.com/ethauvin/semver-gradle/tree/1.0.3-beta) (2019-07-25)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/1.0.2...1.0.3-beta)
-
-**Closed issues:**
-
-- Thanks! [\#7](https://github.com/ethauvin/semver-gradle/issues/7)
-
-## [1.0.2](https://github.com/ethauvin/semver-gradle/tree/1.0.2) (2019-05-24)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/1.0.1...1.0.2)
-
-**Implemented enhancements:**
-
-- version.properties write issue when using NetBeans on Windows. [\#6](https://github.com/ethauvin/semver-gradle/issues/6)
-
-## [1.0.1](https://github.com/ethauvin/semver-gradle/tree/1.0.1) (2019-05-24)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/1.0.0...1.0.1)
-
-## [1.0.0](https://github.com/ethauvin/semver-gradle/tree/1.0.0) (2019-04-23)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.9-beta...1.0.0)
-
-**Implemented enhancements:**
-
-- Optionally save version properties [\#1](https://github.com/ethauvin/semver-gradle/issues/1)
-- Set prerelease from commandline [\#3](https://github.com/ethauvin/semver-gradle/issues/3)
-
-**Merged pull requests:**
-
-- Extended existing tests to include semver property [\#5](https://github.com/ethauvin/semver-gradle/pull/5) ([rveede](https://github.com/rveede))
-- Include full semver version in version.properties [\#4](https://github.com/ethauvin/semver-gradle/pull/4) ([rveede](https://github.com/rveede))
-
-## [0.9.9-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.9-beta) (2018-12-20)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.8-beta...0.9.9-beta)
-
-**Merged pull requests:**
-
-- Add option for disabling saves every project evaluation [\#2](https://github.com/ethauvin/semver-gradle/pull/2) ([lewismorgan](https://github.com/lewismorgan))
-
-## [0.9.8-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.8-beta) (2018-07-14)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.7-beta...0.9.8-beta)
-
-## [0.9.7-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.7-beta) (2018-07-13)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.6-beta...0.9.7-beta)
-
-## [0.9.6-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.6-beta) (2018-07-10)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.5-beta...0.9.6-beta)
-
-## [0.9.5-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.5-beta) (2018-07-07)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.4-beta...0.9.5-beta)
-
-## [0.9.4-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.4-beta) (2018-07-03)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.3-beta...0.9.4-beta)
-
-## [0.9.3-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.3-beta) (2018-07-02)
-[Full Changelog](https://github.com/ethauvin/semver-gradle/compare/0.9.2-beta...0.9.3-beta)
-
-## [0.9.2-beta](https://github.com/ethauvin/semver-gradle/tree/0.9.2-beta) (2018-07-01)
-
-
-\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
\ No newline at end of file
diff --git a/LICENSE.TXT b/LICENSE.TXT
index 7345551..b7ddd7f 100644
--- a/LICENSE.TXT
+++ b/LICENSE.TXT
@@ -1,4 +1,4 @@
-Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
+Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net)
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -24,4 +24,4 @@ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/README.md b/README.md
index 681d9b4..ad5d007 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
-[](http://opensource.org/licenses/BSD-3-Clause) [](https://sonarcloud.io/dashboard?id=ethauvin_semver-gradle) [](https://travis-ci.com/ethauvin/semver-gradle) [](https://circleci.com/gh/ethauvin/semver-gradle/tree/master) [](https://plugins.gradle.org/plugin/net.thauvin.erik.gradle.semver)
+[](http://opensource.org/licenses/BSD-3-Clause) [](https://circleci.com/gh/ethauvin/semver-gradle/tree/master)
# Semantic Version Plugin for Gradle
-A [Semantic Version](https://semver.org) Plugin for [Gradle](https://gradle.org) that manages a project version via a properties file, and provide tasks to __automatically increment__ major, minor, patch and build version numbers.
+A [Semantic Version](https://semver.org) Plugin for [Gradle](https://gradle.org) that manages a project version via a properties file, and provide tasks to __automatically increment__ major, minor and patch build numbers.
The plugin can be used in conjunction with the [__Semantic Version Annotation Processor__](https://github.com/ethauvin/semver).
@@ -21,10 +21,9 @@ version.minor=0
version.patch=0
version.prerelease=
version.buildmeta=
-version.semver=1.0.0
```
-To change the version of your project, remove the version from `build.gradle` and simply edit the version properties file to match your version number.
+To change the version of your project, remove the version from your `build.gradle` and simply edit your the version properties file to match your version number.
- __Examples__: [Java](https://github.com/ethauvin/semver-gradle/tree/master/examples/java), [Kotlin](https://github.com/ethauvin/semver-gradle/tree/master/examples/kotlin)
@@ -101,33 +100,6 @@ incrementBuildMeta {
Version: 1.0.16-beta+002
```
-- __Examples__: [Java](https://github.com/ethauvin/semver-gradle/tree/master/examples/java), [Kotlin](https://github.com/ethauvin/semver-gradle/tree/master/examples/kotlin)
-
-## Command Line
-
-The `major`, `minor`, `patch`, `prerelease` and `buildmeta` versions can also be set via the command line:
-
-```bash
-./gradlew -Dversion.prerelease=beta -Dversion.buildmeta= ...
-```
-
-```ini
-#version.properties
-version.major=1
-version.minor=0
-version.patch=0
-version.prerelease=beta
-version.buildmeta=
-version.semver=1.0.0-beta
-```
-
-The full semantic version can also be specified via the `semver` property:
-
-```sh
-./gradlew -Dversion.semver=1.0.0-beta ...
-```
-
-If a version cannot be parsed your build will **fail**.
## Configuration
@@ -141,17 +113,15 @@ Property | Description | Default
`version.minor` | The minor version. | `0`
`version.patch` | The patch version. | `0`
`version.prerelease` | The pre-release version |
-`version.prerelease.prefix` | The pre-release prefix | `-`
`version.buildmeta` | The build metatdata version |
+`version.prerelease.prefix` | The pre-release prefix | `-`
`version.buildmeta.prefix` | The build metadata prefix | `+`
`version.separator` | The version separator. | `.`
The version number is built as follows:
-`version.major` `version.separator` `version.minor` `version.separator` `version.patch` `[` `version.prerelease.prefix` `version.prerelease` `]` `[` `version.prerelease.prefix` `version.buildmeta` `]`
-
-For reference, it is automatically included in the `version.semver` property.
+`version.major` `version.separtor` `version.minor` `version.separator` `version.patch` `[` `version.prerelease.prefix` `version.prerelease` `]` `[` `version.prerelease.prefix` `version.buildmeta` `]`
for example:
@@ -162,7 +132,6 @@ version.minor=0
version.patch=0
version.prerelease=beta
version.buildmeta=exp.sha.5114f85
-version.semver=1.0.0-beta+exp.sha.5114f85
```
`project.version` will be `1.0.0-beta+exp.sha.5114f85` in Gradle.
@@ -187,7 +156,6 @@ or using different property keys for the version data:
```gradle
semver {
keysPrefix = "" // no prefix
- semverKey = "version"
majorKey = "maj"
minorKey = "min"
patchKey = "build"
@@ -204,23 +172,21 @@ min=0
build=0
rel=beta
meta=
-version=1.0.0-beta
```
The following `semver` properties are available:
Property | Description | Default
-:---------------------|:----------------------------------------|:---------------------------
+:---------------------|:----------------------------------------|:------------------------
`properties` | The properties file. | `version.properties`
-`semverKey` | The semver property key. | `version.semver`
-`majorKey` | The major property key. | `version.major`
-`minorKey` | The minor property key. | `version.minor`
-`patchKey` | The patch property key. | `version.patch`
-`preReleaseKey` | The pre-release property key. | `version.prerelease`
-`preReleasePrefixKey` | The build pre-release prefix key. | `version.prerelease.prefix`
-`buildMetaKey` | The build metadata property key. | `version.buildmeta`
-`buildMetaPrefixKey` | The build metadata prefix property key. | `version.buildmeta.prefix`
-`separatorKey` | The separator property key. | `version.separator`
+`majorKey` | The major property key. | `major`
+`minorKey` | The minor property key. | `minor`
+`patchKey` | The patch property key. | `patch`
+`preReleaseKey` | The pre-release property key. | `preRelease`
+`preReleasePrefixKey` | The build pre-release prefix key. | `preReleasePrefix`
+`buildMetaKey` | The build metadata property key. | `buildMeta`
+`buildMetaPrefixKey` | The build metadata prefix property key. | `buildMetaPrefix`
+`separatorKey` | The separator property key. | `separator`
`keysPrefix` | The prefix for all property keys. | `version.`
In order to quickly support multiple projects. The `keysPrefix` property is available to set all properties keys prefixes at once:
@@ -239,64 +205,12 @@ test.minor=0
test.patch=0
test.prerelease=
test.buildmeta=
-test.semver=1.0.0
```
- __Examples__: [Java](https://github.com/ethauvin/semver-gradle/tree/master/examples/java), [Kotlin](https://github.com/ethauvin/semver-gradle/tree/master/examples/kotlin)
-### Semver Extension Properties
-
-The values stored in the version properties file can individually be accessed using the `semver` extension, for example:
-
-```gradle
- fooTask {
- doFirst {
- println "Build: $semver.buildMeta"
- }
- }
-```
-
-The semver extension properties are:
-
-Property | Description
-:-------------------------|:----------------------------
-`semver.semver` | The full semantic version.
-`semver.version` | Same as `semver.semver`.
-`semver.major` | The major version.
-`semver.minor` | The minor version.
-`semver.patch` | The patch version.
-`semver.preRelease` | The pre-release version
-`semver.preReleasePrefix` | The pre-release prefix
-`semver.buildMeta` | The build metatdata version
-`semver.buildMetaPrefix` | The build metadata prefix
-`semver.separator` | The version separator.
-
-## Version is "unspecified"
-
-This is a common problem stemming from the configuration and build phases in Gradle.
-
-It is always preferable to access to version during the execution stage, in a `doFirst` or `doLast` closure within your tasks:
-
-```gradle
-task foo() {
- doFirst {
- println project.version
- }
-}
-```
-
-or if absolutely necessary, at the end of the configuration stage in a `project.afterEvaluate` block:
-
-```gradle
-foo {
- project.afterEvaluate {
- println project.version
- }
-}
-```
-
## Source Code Generation
If you'd like to incorporate the version number data into your source code, please have a look at the [__Semantic Version Annotation Processor__](https://github.com/ethauvin/semver).
-There are also full [examples](https://github.com/ethauvin/semver-gradle/tree/master/examples/annotation-processor) in both [Java](https://github.com/ethauvin/semver-gradle/tree/master/examples/annotation-processor/java) and [Kotlin](https://github.com/ethauvin/semver-gradle/tree/master/examples/annotation-processor/kotlin) showing how to use both the plugin and annotation processor concurrently.
+There are also full [examples](https://github.com/ethauvin/semver-gradle/tree/master/examples/annotation-processor) in both [Java](https://github.com/ethauvin/semver-gradle/tree/master/examples/annotation-processor/java) and [Kotlin](https://github.com/ethauvin/semver-gradle/tree/master/examples/annotation-processor) showing how to use both the plugin and annotation processor concurrently.
diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml
deleted file mode 100644
index 7d98402..0000000
--- a/bitbucket-pipelines.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-image: openjdk:8
-
-pipelines:
- default:
- - step:
- caches:
- - gradle
- script:
- - bash ./gradlew check
diff --git a/build.gradle.kts b/build.gradle.kts
index 5d51035..9681233 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,44 +1,46 @@
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
+ `kotlin-dsl`
`java-gradle-plugin`
`maven-publish`
- jacoco
- kotlin("jvm") version "1.3.72"
- id("com.github.ben-manes.versions") version "0.36.0"
- id("com.gradle.plugin-publish") version "0.12.0"
- id("io.gitlab.arturbosch.detekt") version "1.14.2"
- id("org.gradle.kotlin.kotlin-dsl") version "1.3.6"
- id("org.sonarqube") version "3.0"
+ id("com.gradle.plugin-publish") version "0.9.10"
+ id("com.github.ben-manes.versions") version "0.20.0"
+ id("org.jlleitschuh.gradle.ktlint") version "4.1.0"
+ id("io.gitlab.arturbosch.detekt") version "1.0.0.RC7"
}
-version = "1.0.5-beta"
+version = "0.9.7-beta"
group = "net.thauvin.erik.gradle"
-object VersionInfo {
- const val spek = "2.0.13"
-}
-val versions: VersionInfo by extra { VersionInfo }
+var github = "https://github.com/ethauvin/semver-gradle"
+var packageName = "net.thauvin.erik.gradle.semver"
-val github = "https://github.com/ethauvin/semver-gradle"
-val packageName = "net.thauvin.erik.gradle.semver"
+var spekVersion = "1.1.5"
repositories {
jcenter()
}
dependencies {
- implementation(gradleApi())
+ compile(gradleApi())
- implementation(platform("org.jetbrains.kotlin:kotlin-bom"))
- implementation(kotlin("stdlib"))
testImplementation(kotlin("reflect"))
testImplementation(kotlin("test"))
-
testImplementation(gradleTestKit())
- testImplementation("org.spekframework.spek2:spek-dsl-jvm:${versions.spek}")
- testRuntimeOnly("org.spekframework.spek2:spek-runner-junit5:${versions.spek}")
+ testImplementation("org.jetbrains.spek:spek-api:$spekVersion") {
+ exclude(group = "org.jetbrains.kotlin")
+ }
+
+ testRuntimeOnly("org.jetbrains.spek:spek-junit-platform-engine:$spekVersion") {
+ exclude(group = "org.jetbrains.kotlin")
+ exclude(group = "org.junit.platform")
+ }
+
+ testRuntimeOnly("org.junit.platform:junit-platform-launcher:1.2.0") {
+ because("Needed to run tests IDEs that bundle an older version")
+ }
}
tasks {
@@ -50,42 +52,29 @@ tasks {
withType {
useJUnitPlatform {
- includeEngines("spek2")
+ includeEngines("spek")
}
}
- withType {
- reports {
- html.isEnabled = true
- xml.isEnabled = true
- }
- }
-
- "sonarqube" {
- dependsOn("jacocoTestReport")
+ val check by getting {
+ dependsOn("ktlintCheck")
}
}
detekt {
- // input = files("src/main/kotlin", "src/test/kotlin")
- // filters = ".*/resources/.*,.*/build/.*"
- baseline = project.rootDir.resolve("detekt-baseline.xml")
-}
-
-sonarqube {
- properties {
- property("sonar.projectName", "semver-gradle")
- property("sonar.projectKey", "ethauvin_semver-gradle")
- property("sonar.sourceEncoding", "UTF-8")
- }
+ profile("main", Action {
+ input = "src/main/kotlin"
+ filters = ".*/resources/.*,.*/build/.*"
+ output = "$buildDir/reports/detekt-reports"
+ outputName = "detekt-report"
+ baseline = "detekt-baseline.xml"
+ })
}
gradlePlugin {
- plugins {
- create(project.name) {
+ (plugins) {
+ project.name {
id = packageName
- displayName = "SemVer Plugin"
- description = "Semantic Version Plugin for Gradle"
implementationClass = "$packageName.SemverPlugin"
}
}
@@ -94,7 +83,16 @@ gradlePlugin {
pluginBundle {
website = github
vcsUrl = github
+ description = "Semantic Version Plugin for Gradle"
tags = listOf("semver", "semantic", "version", "versioning", "auto-increment", "kotlin", "java")
+
+ (plugins) {
+ project.name {
+ id = packageName
+ displayName = project.name
+ }
+ }
+
mavenCoordinates {
groupId = project.group.toString()
artifactId = project.name
diff --git a/detekt-baseline.xml b/detekt-baseline.xml
index 52cc674..e9d3cfb 100644
--- a/detekt-baseline.xml
+++ b/detekt-baseline.xml
@@ -1,12 +1,8 @@
-
-
- MagicNumber:Utils.kt$Utils$3
- MagicNumber:Utils.kt$Utils$4
- MagicNumber:Utils.kt$Utils$5
- NestedBlockDepth:Utils.kt$Utils$fun loadProperties(file: File): Properties
- NestedBlockDepth:Utils.kt$Utils$fun parseSemVer(input: String?, version: Version): Boolean
- NestedBlockDepth:Utils.kt$Utils$fun saveProperties(projectDir: File, config: SemverConfig, version: Version)
-
-
+
+
+ MaxLineLength:SemverPlugin.kt$net.thauvin.erik.gradle.semver.SemverPlugin.kt
+ NestedBlockDepth:SemverPlugin.kt$SemverPlugin$private fun afterEvaluate(project: Project)
+
+
\ No newline at end of file
diff --git a/examples/annotation-processor/java/.gitignore b/examples/annotation-processor/java/.gitignore
index a78c5c2..e6a12e2 100644
--- a/examples/annotation-processor/java/.gitignore
+++ b/examples/annotation-processor/java/.gitignore
@@ -1,82 +1,30 @@
-!.vscode/extensions.json
-!.vscode/launch.json
-!.vscode/settings.json
-!.vscode/tasks.json
-!gradle-wrapper.jar
+**/.idea/dictionaries
+**/.idea/gradle.xml
+**/.idea/libraries
+**/.idea/tasks.xml
+**/.idea/workspace.xml
+**/src/*.class
+*.sublime-*
+*.iws
.classpath
.DS_Store
.gradle
-.history
-.idea_modules/
-.idea/**/contentModel.xml
-.idea/**/dataSources.ids
-.idea/**/dataSources.local.xml
-.idea/**/dataSources/
-.idea/**/dbnavigator.xml
-.idea/**/dictionaries
-.idea/**/dynamic.xml
-.idea/**/gradle.xml
-.idea/**/libraries
-.idea/**/mongoSettings.xml
-.idea/**/shelf
-.idea/**/sqlDataSources.xml
-.idea/**/tasks.xml
-.idea/**/uiDesigner.xml
-.idea/**/usage.statistics.xml
-.idea/**/workspace.xml
-.idea/caches/build_file_checksums.ser
-.idea/httpRequests
-.idea/replstate.xml
.kobalt
-.mtj.tmp/
-.mvn/timing.properties
-.mvn/wrapper/maven-wrapper.jar
.nb-gradle
.project
-.scannerwork
.settings
-.vscode/*
-*.class
-*.code-workspace
-*.ctxt
-*.ear
-*.iws
-*.jar
-*.log
-*.nar
-*.rar
-*.sublime-*
-*.tar.gz
-*.war
-*.zip
-atlassian-ide-plugin.xml
-bin/
-build/
-cmake-build-*/
-com_crashlytics_export_strings.xml
-crashlytics-build.properties
-crashlytics.properties
-dependency-reduced-pom.xml
-deploy/
-dist/
+/bin
+/build
+/deploy
+/dist
+/gen
+/gradle.properties
+/local.properties
+/out
+/proguard-project.txt
+/project.properties
+/target
+/test-output
ehthumbs.db
-fabric.properties
-gen/
-gradle.properties
-hs_err_pid*
kobaltBuild
-kobaltw*-test
-lib/kotlin*
-libs/
-local.properties
-out/
-pom.xml.next
-pom.xml.releaseBackup
-pom.xml.tag
-pom.xml.versionsBackup
-proguard-project.txt
-project.properties
-release.properties
-target/
-test-output
-Thumbs.db
+Thumbs.db
\ No newline at end of file
diff --git a/examples/annotation-processor/java/.idea/.name b/examples/annotation-processor/java/.idea/.name
new file mode 100644
index 0000000..24e4327
--- /dev/null
+++ b/examples/annotation-processor/java/.idea/.name
@@ -0,0 +1 @@
+ap-examples-java
\ No newline at end of file
diff --git a/examples/annotation-processor/java/.idea/compiler.xml b/examples/annotation-processor/java/.idea/compiler.xml
index cb1142d..60e4bd7 100644
--- a/examples/annotation-processor/java/.idea/compiler.xml
+++ b/examples/annotation-processor/java/.idea/compiler.xml
@@ -2,8 +2,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/examples/annotation-processor/java/.idea/misc.xml b/examples/annotation-processor/java/.idea/misc.xml
index db06c18..e707cdd 100644
--- a/examples/annotation-processor/java/.idea/misc.xml
+++ b/examples/annotation-processor/java/.idea/misc.xml
@@ -1,9 +1,6 @@
-
-
-
-
+
\ No newline at end of file
diff --git a/examples/annotation-processor/java/.idea/modules.xml b/examples/annotation-processor/java/.idea/modules.xml
index 7cd1f26..13b9f25 100644
--- a/examples/annotation-processor/java/.idea/modules.xml
+++ b/examples/annotation-processor/java/.idea/modules.xml
@@ -3,8 +3,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/examples/annotation-processor/java/.idea/modules/ap-examples-java.iml b/examples/annotation-processor/java/.idea/modules/ap-examples-java.iml
index 57e5b58..34884a5 100644
--- a/examples/annotation-processor/java/.idea/modules/ap-examples-java.iml
+++ b/examples/annotation-processor/java/.idea/modules/ap-examples-java.iml
@@ -1,5 +1,5 @@
-
+
diff --git a/examples/annotation-processor/java/.idea/modules/ap-examples-java.main.iml b/examples/annotation-processor/java/.idea/modules/ap-examples-java_main.iml
similarity index 76%
rename from examples/annotation-processor/java/.idea/modules/ap-examples-java.main.iml
rename to examples/annotation-processor/java/.idea/modules/ap-examples-java_main.iml
index c65ff83..c6c3635 100644
--- a/examples/annotation-processor/java/.idea/modules/ap-examples-java.main.iml
+++ b/examples/annotation-processor/java/.idea/modules/ap-examples-java_main.iml
@@ -1,17 +1,17 @@
-
-
+
+
-
+
-
-
+
+
\ No newline at end of file
diff --git a/examples/annotation-processor/java/.idea/modules/ap-examples-java.test.iml b/examples/annotation-processor/java/.idea/modules/ap-examples-java_test.iml
similarity index 53%
rename from examples/annotation-processor/java/.idea/modules/ap-examples-java.test.iml
rename to examples/annotation-processor/java/.idea/modules/ap-examples-java_test.iml
index e3e8de5..7e2577b 100644
--- a/examples/annotation-processor/java/.idea/modules/ap-examples-java.test.iml
+++ b/examples/annotation-processor/java/.idea/modules/ap-examples-java_test.iml
@@ -1,14 +1,14 @@
-
-
+
+
-
+
+
+
-
-
-
+
-
+
\ No newline at end of file
diff --git a/examples/annotation-processor/java/build.gradle b/examples/annotation-processor/java/build.gradle
index b343869..5658c07 100644
--- a/examples/annotation-processor/java/build.gradle
+++ b/examples/annotation-processor/java/build.gradle
@@ -1,8 +1,7 @@
plugins {
id 'java'
id 'application'
- id 'net.thauvin.erik.gradle.semver' version '1.0.4'
- id 'com.github.ben-manes.versions' version '0.28.0'
+ id "net.thauvin.erik.gradle.semver" version "0.9.7-beta"
}
// ./gradlew
@@ -14,16 +13,13 @@ mainClassName = 'com.example.Example'
defaultTasks 'run'
-def semverProcessor = "net.thauvin.erik:semver:1.2.0"
+compileJava.options.annotationProcessorGeneratedSourcesDirectory = file("${projectDir}/src/generated/java")
+
+def semverProcessor = "net.thauvin.erik:semver:1.1.0-beta"
dependencies {
annotationProcessor semverProcessor
- implementation semverProcessor
-}
-
-tasks.withType(JavaCompile) {
- options.annotationProcessorGeneratedSourcesDirectory = file("${projectDir}/src/generated/java")
- options.compilerArgs += [ "-Asemver.project.dir=$projectDir" ]
+ compileOnly semverProcessor
}
repositories {
@@ -31,15 +27,6 @@ repositories {
jcenter()
}
-run {
- doFirst {
- println "Version: $version"
- }
-
-// args = ['example.properties']
- args = ['version.properties']
-}
-
semver {
// properties = "example.properties"
// keysPrefix = "example."
diff --git a/examples/annotation-processor/java/example.properties b/examples/annotation-processor/java/example.properties
index ef37d26..11e4b78 100644
--- a/examples/annotation-processor/java/example.properties
+++ b/examples/annotation-processor/java/example.properties
@@ -1,7 +1,7 @@
#Generated by the Semver Plugin for Gradle
-#Thu Nov 01 18:52:23 PDT 2018
+#Sun Jul 01 20:13:31 PDT 2018
example.major=1
+example.release=
example.meta=
example.minor=0
example.patch=0
-example.release=
diff --git a/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.jar b/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.jar
index f3d88b1..758de96 100644
Binary files a/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.jar and b/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.properties b/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.properties
index a2bf131..2d80b69 100644
--- a/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.properties
+++ b/examples/annotation-processor/java/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.2.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/examples/annotation-processor/java/gradlew b/examples/annotation-processor/java/gradlew
index 2fe81a7..cccdd3d 100755
--- a/examples/annotation-processor/java/gradlew
+++ b/examples/annotation-processor/java/gradlew
@@ -1,21 +1,5 @@
#!/usr/bin/env sh
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
##############################################################################
##
## Gradle start up script for UN*X
@@ -44,7 +28,7 @@ APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
@@ -125,8 +109,8 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
-# For Cygwin or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
@@ -154,19 +138,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
else
eval `echo args$i`="\"$arg\""
fi
- i=`expr $i + 1`
+ i=$((i+1))
done
case $i in
- 0) set -- ;;
- 1) set -- "$args0" ;;
- 2) set -- "$args0" "$args1" ;;
- 3) set -- "$args0" "$args1" "$args2" ;;
- 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
@@ -175,9 +159,14 @@ save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
-APP_ARGS=`save "$@"`
+APP_ARGS=$(save "$@")
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+ cd "$(dirname "$0")"
+fi
+
exec "$JAVACMD" "$@"
diff --git a/examples/annotation-processor/java/gradlew.bat b/examples/annotation-processor/java/gradlew.bat
index 62bd9b9..f955316 100644
--- a/examples/annotation-processor/java/gradlew.bat
+++ b/examples/annotation-processor/java/gradlew.bat
@@ -1,19 +1,3 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@@ -29,11 +13,8 @@ if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
diff --git a/examples/annotation-processor/java/src/generated/java/com/example/GeneratedVersion.java b/examples/annotation-processor/java/src/generated/java/com/example/GeneratedVersion.java
index 5010897..24315b7 100644
--- a/examples/annotation-processor/java/src/generated/java/com/example/GeneratedVersion.java
+++ b/examples/annotation-processor/java/src/generated/java/com/example/GeneratedVersion.java
@@ -2,7 +2,6 @@
* This file is automatically generated.
* Do not modify! -- ALL CHANGES WILL BE ERASED!
*/
-
package com.example;
import java.util.Date;
@@ -13,22 +12,91 @@ import java.util.Date;
* @author Semantic Version Annotation Processor
*/
public final class GeneratedVersion {
- public static final String PROJECT = "Java Example";
- public static final Date BUILDDATE = new Date(1564027571537L);
- public static final int MAJOR = 2;
- public static final int MINOR = 10;
- public static final int PATCH = 0;
- public static final String PRERELEASE = "";
- public static final String PRERELEASE_PREFIX = "-";
- public static final String BUILDMETA = "";
- public static final String BUILDMETA_PREFIX = "+";
- public static final String SEPARATOR = ".";
- public static final String VERSION = "2.10.0";
+ public final static String PRERELEASE_PREFIX = "-";
+ public final static String BUILDMETA_PREFIX = "+";
+
+ public final static String PROJECT = "";
+ public final static Date BUILDDATE = new Date(1531208748879L);
+ public final static int MAJOR = 2;
+ public final static int MINOR = 1;
+ public final static int PATCH = 2;
+ public final static String PRERELEASE = "";
+ public final static String BUILDMETA = "";
+
+ /**
+ * The full version string.
+ *
+ * Formatted as:
+ *
+ * MAJOR.MINOR.PATCH[-PRERELEASE][+BUILDMETADATA]
+ *
+ *
+ * For example:
+ *
+ * 1.0.0
+ * 1.0.0-beta
+ * 1.0.0+20160124144700
+ * 1.0.0-alpha+001
+ *
+ */
+ public final static String VERSION = Integer.toString(MAJOR) + '.'
+ + Integer.toString(MINOR) + '.'
+ + Integer.toString(PATCH)
+ + preReleaseWithPrefix() + buildMetaWithPrefix();
/**
* Disables the default constructor.
+ *
+ * @throws UnsupportedOperationException If the constructor is called.
*/
- private GeneratedVersion() {
+ private GeneratedVersion()
+ throws UnsupportedOperationException {
throw new UnsupportedOperationException("Illegal constructor call.");
}
-}
+
+ /**
+ * Returns the build metadata with {@value #BUILDMETA_PREFIX} prefix.
+ *
+ * @return The build metadata, if any.
+ */
+ public static String buildMetaWithPrefix() {
+ return buildMetaWithPrefix(BUILDMETA_PREFIX);
+ }
+
+ /**
+ * Returns the build metadata.
+ *
+ * @param prefix Prefix to prepend.
+ * @return The build metadata, if any.
+ */
+ public static String buildMetaWithPrefix(final String prefix) {
+ if (BUILDMETA.length() > 0 && prefix.length() > 0) {
+ return prefix + BUILDMETA;
+ } else {
+ return BUILDMETA;
+ }
+ }
+
+ /**
+ * Returns the pre-release version with {@value #PRERELEASE_PREFIX} prefix.
+ *
+ * @return The pre-release version, if any.
+ */
+ public static String preReleaseWithPrefix() {
+ return preReleaseWithPrefix(PRERELEASE_PREFIX);
+ }
+
+ /**
+ * Returns the pre-release version.
+ *
+ * @param prefix The prefix to prepend.
+ * @return The pre-release version, if any.
+ */
+ public static String preReleaseWithPrefix(final String prefix) {
+ if (PRERELEASE.length() > 0 && prefix.length() > 0) {
+ return prefix + PRERELEASE;
+ } else {
+ return PRERELEASE;
+ }
+ }
+}
\ No newline at end of file
diff --git a/examples/annotation-processor/java/src/main/java/com/example/Example.java b/examples/annotation-processor/java/src/main/java/com/example/Example.java
index 723f398..6992ac9 100644
--- a/examples/annotation-processor/java/src/main/java/com/example/Example.java
+++ b/examples/annotation-processor/java/src/main/java/com/example/Example.java
@@ -2,12 +2,6 @@ package com.example;
import net.thauvin.erik.semver.Version;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.List;
-
import java.text.SimpleDateFormat;
@Version(properties = "version.properties")
@@ -17,12 +11,12 @@ import java.text.SimpleDateFormat;
// preReleaseKey = "release",
// buildMetaKey = "meta")
public class Example {
- public static void main(String... args) throws IOException {
+ public static void main(final String... args) {
final SimpleDateFormat sdf = new SimpleDateFormat("EEE, d MMM yyyy 'at' HH:mm:ss z");
System.out.println("-----------------------------------------------------");
- System.out.println(" Version: " + GeneratedVersion.PROJECT + ' ' + GeneratedVersion.VERSION);
+ System.out.println(" Version:" + GeneratedVersion.PROJECT + ' ' + GeneratedVersion.VERSION);
System.out.println(" Built on: " + sdf.format(GeneratedVersion.BUILDDATE));
System.out.println(" Major: " + GeneratedVersion.MAJOR);
@@ -32,16 +26,5 @@ public class Example {
System.out.println(" BuildMetaData: " + GeneratedVersion.BUILDMETA);
System.out.println("-----------------------------------------------------");
-
- if (args.length == 1) {
- final Path path = Paths.get(args[0]);
- if (Files.exists(path)) {
- final List content = Files.readAllLines(path);
- System.out.println("> cat " + path.getFileName());
- for (final String line : content) {
- System.out.println(line);
- }
- }
- }
}
}
diff --git a/examples/annotation-processor/java/version.properties b/examples/annotation-processor/java/version.properties
index fc54733..24cfc56 100644
--- a/examples/annotation-processor/java/version.properties
+++ b/examples/annotation-processor/java/version.properties
@@ -1,9 +1,7 @@
#Generated by the Semver Plugin for Gradle
-#Wed Jul 24 21:06:09 PDT 2019
+#Fri Jul 13 15:21:02 PDT 2018
version.buildmeta=
version.major=2
-version.minor=10
-version.patch=0
+version.minor=1
+version.patch=2
version.prerelease=
-version.project=Java Example
-version.semver=2.10.0
diff --git a/examples/annotation-processor/kotlin/.gitignore b/examples/annotation-processor/kotlin/.gitignore
index 638960b..32fe2fe 100644
--- a/examples/annotation-processor/kotlin/.gitignore
+++ b/examples/annotation-processor/kotlin/.gitignore
@@ -1,81 +1,32 @@
-!.vscode/extensions.json
-!.vscode/launch.json
-!.vscode/settings.json
-!.vscode/tasks.json
-!gradle-wrapper.jar
+**/.idea/dictionaries
+**/.idea/gradle.xml
+**/.idea/libraries
+**/.idea/tasks.xml
+**/.idea/workspace.xml
+*.iws
+*.sublime-*
.classpath
.DS_Store
.gradle
-.history
-.idea_modules/
-.idea/**/contentModel.xml
-.idea/**/dataSources.ids
-.idea/**/dataSources.local.xml
-.idea/**/dataSources/
-.idea/**/dbnavigator.xml
-.idea/**/dictionaries
-.idea/**/dynamic.xml
-.idea/**/gradle.xml
-.idea/**/libraries
-.idea/**/mongoSettings.xml
-.idea/**/shelf
-.idea/**/sqlDataSources.xml
-.idea/**/tasks.xml
-.idea/**/uiDesigner.xml
-.idea/**/usage.statistics.xml
-.idea/**/workspace.xml
-.idea/caches/build_file_checksums.ser
-.idea/httpRequests
-.idea/replstate.xml
.kobalt
-.mtj.tmp/
-.mvn/timing.properties
-.mvn/wrapper/maven-wrapper.jar
.nb-gradle
.project
-.scannerwork
.settings
-.vscode/*
-*.class
-*.code-workspace
-*.ctxt
-*.ear
-*.iws
-*.jar
-*.log
-*.nar
-*.rar
-*.sublime-*
-*.tar.gz
-*.war
-*.zip
-atlassian-ide-plugin.xml
-bin/
-build/
-cmake-build-*/
-com_crashlytics_export_strings.xml
-crashlytics-build.properties
-crashlytics.properties
-dependency-reduced-pom.xml
-deploy/
-dist/
+/bin
+/build
+/deploy
+/dist
+/gen
+/gradle.properties
+/lib/kotlin*
+/libs
+/local.properties
+/out
+/proguard-project.txt
+/project.properties
+/target
+/test-output
ehthumbs.db
-fabric.properties
-gen/
-hs_err_pid*
kobaltBuild
kobaltw*-test
-lib/kotlin*
-libs/
-local.properties
-out/
-pom.xml.next
-pom.xml.releaseBackup
-pom.xml.tag
-pom.xml.versionsBackup
-proguard-project.txt
-project.properties
-release.properties
-target/
-test-output
-Thumbs.db
+Thumbs.db
\ No newline at end of file
diff --git a/examples/annotation-processor/kotlin/.idea/.name b/examples/annotation-processor/kotlin/.idea/.name
new file mode 100644
index 0000000..fcc2f0d
--- /dev/null
+++ b/examples/annotation-processor/kotlin/.idea/.name
@@ -0,0 +1 @@
+ap-examples-kotlin
\ No newline at end of file
diff --git a/examples/annotation-processor/kotlin/.idea/compiler.xml b/examples/annotation-processor/kotlin/.idea/compiler.xml
index 0974d2a..447f752 100644
--- a/examples/annotation-processor/kotlin/.idea/compiler.xml
+++ b/examples/annotation-processor/kotlin/.idea/compiler.xml
@@ -2,8 +2,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/examples/annotation-processor/kotlin/.idea/misc.xml b/examples/annotation-processor/kotlin/.idea/misc.xml
index db06c18..e707cdd 100644
--- a/examples/annotation-processor/kotlin/.idea/misc.xml
+++ b/examples/annotation-processor/kotlin/.idea/misc.xml
@@ -1,9 +1,6 @@
-
-
-
-
+
\ No newline at end of file
diff --git a/examples/annotation-processor/kotlin/.idea/modules.xml b/examples/annotation-processor/kotlin/.idea/modules.xml
index 3b646e0..6b8f603 100644
--- a/examples/annotation-processor/kotlin/.idea/modules.xml
+++ b/examples/annotation-processor/kotlin/.idea/modules.xml
@@ -3,8 +3,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.iml b/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.iml
index d89813c..9386ba3 100644
--- a/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.iml
+++ b/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.iml
@@ -1,5 +1,5 @@
-
+
diff --git a/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.main.iml b/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin_main.iml
similarity index 70%
rename from examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.main.iml
rename to examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin_main.iml
index 4a6974e..795e70f 100644
--- a/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.main.iml
+++ b/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin_main.iml
@@ -1,33 +1,29 @@
-
+
-
-
-
+
+
-
-
-
-
+
@@ -37,10 +33,12 @@
+
+
@@ -50,9 +48,9 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.test.iml b/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin_test.iml
similarity index 64%
rename from examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.test.iml
rename to examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin_test.iml
index 0ab49b9..87b72c6 100644
--- a/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin.test.iml
+++ b/examples/annotation-processor/kotlin/.idea/modules/ap-examples-kotlin_test.iml
@@ -1,40 +1,29 @@
-
+
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
+
@@ -46,7 +35,7 @@
-
+
@@ -56,9 +45,9 @@
-
-
+
+
-
+
\ No newline at end of file
diff --git a/examples/annotation-processor/kotlin/.idea/vcs.xml b/examples/annotation-processor/kotlin/.idea/vcs.xml
deleted file mode 100644
index c2365ab..0000000
--- a/examples/annotation-processor/kotlin/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/annotation-processor/kotlin/build.gradle.kts b/examples/annotation-processor/kotlin/build.gradle.kts
index 78cd80b..35d413f 100644
--- a/examples/annotation-processor/kotlin/build.gradle.kts
+++ b/examples/annotation-processor/kotlin/build.gradle.kts
@@ -1,9 +1,10 @@
+import net.thauvin.erik.gradle.semver.SemverConfig
+
plugins {
- kotlin("jvm").version("1.3.61")
+ kotlin("jvm") version "1.2.50"
application
- id("org.jetbrains.kotlin.kapt").version("1.3.61")
- id("net.thauvin.erik.gradle.semver").version("1.0.4")
- id("com.github.ben-manes.versions").version("0.28.0")
+ id("org.jetbrains.kotlin.kapt") version "1.2.50"
+ id("net.thauvin.erik.gradle.semver") version "0.9.7-beta"
}
// ./gradlew
@@ -13,13 +14,13 @@ plugins {
defaultTasks(ApplicationPlugin.TASK_RUN_NAME)
-var semverProcessor = "net.thauvin.erik:semver:1.2.0"
+var semverProcessor = "net.thauvin.erik:semver:1.1.0-beta"
dependencies {
kapt(semverProcessor)
- implementation(semverProcessor)
+ compileOnly(semverProcessor)
- implementation(kotlin("stdlib"))
+ compile(kotlin("stdlib"))
}
repositories {
@@ -31,24 +32,7 @@ application {
mainClassName = "com.example.Main"
}
-kapt {
- arguments {
- arg("semver.project.dir", projectDir)
- }
-}
-
-tasks {
- "run"(JavaExec::class) {
- doFirst {
- println("Verion: $version")
- }
-
-// args = listOf("example.properties")
- args = listOf("version.properties")
- }
-}
-
-semver {
+configure {
// properties = "example.properties"
// keysPrefix = "example."
// preReleaseKey = "release"
diff --git a/examples/annotation-processor/kotlin/gradle.properties b/examples/annotation-processor/kotlin/gradle.properties
deleted file mode 100644
index 93cd554..0000000
--- a/examples/annotation-processor/kotlin/gradle.properties
+++ /dev/null
@@ -1 +0,0 @@
-#kapt.use.worker.api=true
diff --git a/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.jar b/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.jar
index f3d88b1..758de96 100644
Binary files a/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.jar and b/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.properties b/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.properties
index a2bf131..2d80b69 100644
--- a/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.properties
+++ b/examples/annotation-processor/kotlin/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.2.2-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/examples/annotation-processor/kotlin/gradlew b/examples/annotation-processor/kotlin/gradlew
index 2fe81a7..cccdd3d 100755
--- a/examples/annotation-processor/kotlin/gradlew
+++ b/examples/annotation-processor/kotlin/gradlew
@@ -1,21 +1,5 @@
#!/usr/bin/env sh
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
##############################################################################
##
## Gradle start up script for UN*X
@@ -44,7 +28,7 @@ APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
@@ -125,8 +109,8 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
-# For Cygwin or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
@@ -154,19 +138,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
else
eval `echo args$i`="\"$arg\""
fi
- i=`expr $i + 1`
+ i=$((i+1))
done
case $i in
- 0) set -- ;;
- 1) set -- "$args0" ;;
- 2) set -- "$args0" "$args1" ;;
- 3) set -- "$args0" "$args1" "$args2" ;;
- 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
@@ -175,9 +159,14 @@ save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
-APP_ARGS=`save "$@"`
+APP_ARGS=$(save "$@")
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+ cd "$(dirname "$0")"
+fi
+
exec "$JAVACMD" "$@"
diff --git a/examples/annotation-processor/kotlin/gradlew.bat b/examples/annotation-processor/kotlin/gradlew.bat
index 62bd9b9..f955316 100644
--- a/examples/annotation-processor/kotlin/gradlew.bat
+++ b/examples/annotation-processor/kotlin/gradlew.bat
@@ -1,19 +1,3 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@@ -29,11 +13,8 @@ if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
diff --git a/examples/annotation-processor/kotlin/src/main/kotlin/com/example/Main.kt b/examples/annotation-processor/kotlin/src/main/kotlin/com/example/Main.kt
index cc503f1..7ccd226 100644
--- a/examples/annotation-processor/kotlin/src/main/kotlin/com/example/Main.kt
+++ b/examples/annotation-processor/kotlin/src/main/kotlin/com/example/Main.kt
@@ -1,7 +1,6 @@
package com.example
import net.thauvin.erik.semver.Version
-import java.io.File
import java.text.SimpleDateFormat
@Version(properties = "version.properties", type = "kt")
@@ -29,17 +28,6 @@ class Main {
println(" BuildMetaData: ${GeneratedVersion.BUILDMETA}")
println("-----------------------------------------------------")
-
- if (args.size == 1) {
- File(args[0]).apply {
- if (exists()) {
- println("> cat $name")
- forEachLine {
- println(it)
- }
- }
- }
- }
}
}
-}
+}
\ No newline at end of file
diff --git a/examples/annotation-processor/kotlin/version.properties b/examples/annotation-processor/kotlin/version.properties
index 8da5e3a..9b2b6f8 100644
--- a/examples/annotation-processor/kotlin/version.properties
+++ b/examples/annotation-processor/kotlin/version.properties
@@ -1,9 +1,7 @@
#Generated by the Semver Plugin for Gradle
-#Wed Jul 24 21:06:46 PDT 2019
-version.buildmeta=
-version.major=14
-version.minor=3
-version.patch=0
+#Tue Jul 10 00:48:28 PDT 2018
version.prerelease=
-version.project=Kotlin Example
-version.semver=14.3.0
+version.buildmeta=
+version.patch=4
+version.major=11
+version.minor=2
diff --git a/examples/examples.sh b/examples/examples.sh
index 787be4a..8f6bf8a 100755
--- a/examples/examples.sh
+++ b/examples/examples.sh
@@ -1,32 +1,17 @@
#!/bin/bash
-# Version 1.0
-
if [ $# -eq 0 ]; then
- echo "Usage: $0 "
+ echo "Usage: $0 [...]"
exit 1
fi
-# set the examples directories
-declare -a examples=(
- "java"
- "kotlin"
- "annotation-processor/java"
- "annotation-processor/kotlin")
-
dir=$(dirname "$(readlink -f "$0")")
-cyan=$(tput setaf 6)
+color=$(tput setaf 6)
normal=$(tput sgr0)
-i=0
-for ex in "${examples[@]}"; do
- if [ $i -ne 0 ]
- then
- read -p "Press [Enter] key to continue..."
- clear
- fi
+for ex in "java" "kotlin" "annotation-processor/java" "annotation-processor/kotlin"; do
cd "$dir/$ex" || exit 1
- echo "> Project: ${cyan}${ex}${normal}"
- ./gradlew --console=plain --no-build-cache clean "$@" || exit 1
- (( i++ ))
-done
+ echo "> Project: ${color}${ex}${normal}"
+ gradle clean "$@" --console=plain --no-build-cache || exit 1
+ echo
+done
\ No newline at end of file
diff --git a/examples/java/.gitignore b/examples/java/.gitignore
index a78c5c2..722fba3 100644
--- a/examples/java/.gitignore
+++ b/examples/java/.gitignore
@@ -1,82 +1,30 @@
-!.vscode/extensions.json
-!.vscode/launch.json
-!.vscode/settings.json
-!.vscode/tasks.json
-!gradle-wrapper.jar
+**/.idea/dictionaries
+**/.idea/gradle.xml
+**/.idea/libraries
+**/.idea/tasks.xml
+**/.idea/workspace.xml
+**/src/*.class
+*.iws
+*.sublime-*
.classpath
.DS_Store
.gradle
-.history
-.idea_modules/
-.idea/**/contentModel.xml
-.idea/**/dataSources.ids
-.idea/**/dataSources.local.xml
-.idea/**/dataSources/
-.idea/**/dbnavigator.xml
-.idea/**/dictionaries
-.idea/**/dynamic.xml
-.idea/**/gradle.xml
-.idea/**/libraries
-.idea/**/mongoSettings.xml
-.idea/**/shelf
-.idea/**/sqlDataSources.xml
-.idea/**/tasks.xml
-.idea/**/uiDesigner.xml
-.idea/**/usage.statistics.xml
-.idea/**/workspace.xml
-.idea/caches/build_file_checksums.ser
-.idea/httpRequests
-.idea/replstate.xml
.kobalt
-.mtj.tmp/
-.mvn/timing.properties
-.mvn/wrapper/maven-wrapper.jar
.nb-gradle
.project
-.scannerwork
.settings
-.vscode/*
-*.class
-*.code-workspace
-*.ctxt
-*.ear
-*.iws
-*.jar
-*.log
-*.nar
-*.rar
-*.sublime-*
-*.tar.gz
-*.war
-*.zip
-atlassian-ide-plugin.xml
-bin/
-build/
-cmake-build-*/
-com_crashlytics_export_strings.xml
-crashlytics-build.properties
-crashlytics.properties
-dependency-reduced-pom.xml
-deploy/
-dist/
+/bin
+/build
+/deploy
+/dist
+/gen
+/gradle.properties
+/local.properties
+/out
+/proguard-project.txt
+/project.properties
+/target
+/test-output
ehthumbs.db
-fabric.properties
-gen/
-gradle.properties
-hs_err_pid*
kobaltBuild
-kobaltw*-test
-lib/kotlin*
-libs/
-local.properties
-out/
-pom.xml.next
-pom.xml.releaseBackup
-pom.xml.tag
-pom.xml.versionsBackup
-proguard-project.txt
-project.properties
-release.properties
-target/
-test-output
-Thumbs.db
+Thumbs.db
\ No newline at end of file
diff --git a/examples/java/.idea/.name b/examples/java/.idea/.name
new file mode 100644
index 0000000..1658a34
--- /dev/null
+++ b/examples/java/.idea/.name
@@ -0,0 +1 @@
+examples-java
\ No newline at end of file
diff --git a/examples/java/.idea/compiler.xml b/examples/java/.idea/compiler.xml
index 0888ebb..97906b4 100644
--- a/examples/java/.idea/compiler.xml
+++ b/examples/java/.idea/compiler.xml
@@ -2,8 +2,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/examples/java/.idea/misc.xml b/examples/java/.idea/misc.xml
index db06c18..e707cdd 100644
--- a/examples/java/.idea/misc.xml
+++ b/examples/java/.idea/misc.xml
@@ -1,9 +1,6 @@
-
-
-
-
+
\ No newline at end of file
diff --git a/examples/java/.idea/modules.xml b/examples/java/.idea/modules.xml
index da0a5ad..e27b37a 100644
--- a/examples/java/.idea/modules.xml
+++ b/examples/java/.idea/modules.xml
@@ -3,8 +3,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/examples/java/.idea/modules/examples-java.iml b/examples/java/.idea/modules/examples-java.iml
index 7c9c673..985871b 100644
--- a/examples/java/.idea/modules/examples-java.iml
+++ b/examples/java/.idea/modules/examples-java.iml
@@ -1,5 +1,5 @@
-
+
diff --git a/examples/java/.idea/modules/examples-java.main.iml b/examples/java/.idea/modules/examples-java_main.iml
similarity index 81%
rename from examples/java/.idea/modules/examples-java.main.iml
rename to examples/java/.idea/modules/examples-java_main.iml
index b3b97ea..0b094a1 100644
--- a/examples/java/.idea/modules/examples-java.main.iml
+++ b/examples/java/.idea/modules/examples-java_main.iml
@@ -1,6 +1,6 @@
-
-
+
+
diff --git a/examples/java/.idea/modules/examples-java.test.iml b/examples/java/.idea/modules/examples-java_test.iml
similarity index 69%
rename from examples/java/.idea/modules/examples-java.test.iml
rename to examples/java/.idea/modules/examples-java_test.iml
index 860abdf..5f1c755 100644
--- a/examples/java/.idea/modules/examples-java.test.iml
+++ b/examples/java/.idea/modules/examples-java_test.iml
@@ -1,6 +1,6 @@
-
-
+
+
@@ -8,13 +8,13 @@
-
-
-
+
+
+
-
-
-
+
+
+
-
+
\ No newline at end of file
diff --git a/examples/java/.idea/vcs.xml b/examples/java/.idea/vcs.xml
deleted file mode 100644
index b2bdec2..0000000
--- a/examples/java/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/java/build.gradle b/examples/java/build.gradle
index e841b08..154185d 100644
--- a/examples/java/build.gradle
+++ b/examples/java/build.gradle
@@ -1,8 +1,7 @@
plugins {
id 'java'
id 'application'
- id 'net.thauvin.erik.gradle.semver' version '1.0.4'
- id 'com.github.ben-manes.versions' version '0.36.0'
+ id "net.thauvin.erik.gradle.semver" version "0.9.7-beta"
}
// ./gradlew
@@ -10,14 +9,18 @@ plugins {
// ./gradlew incrementMinor run
// ./gradlew incrementMajor run
// ./gradlew incrementBuildMeta run
-// ./gradlew echoVersion
+mainClassName = 'App'
defaultTasks 'run'
dependencies {
- testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
- testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
+ testImplementation(
+ 'org.junit.jupiter:junit-jupiter-api:5.2.0'
+ )
+ testRuntimeOnly(
+ 'org.junit.jupiter:junit-jupiter-engine:5.2.0'
+ )
}
repositories {
@@ -28,13 +31,6 @@ test {
useJUnitPlatform()
}
-application {
- mainClassName = 'App'
-// project.afterEvaluate {
-// println "Version: $version"
-// }
-}
-
semver {
// properties = "example.properties"
// keysPrefix = "example."
@@ -51,14 +47,9 @@ incrementBuildMeta {
run {
doFirst {
-// println "Version: ${-> version}"
println "Version: $version"
}
// args = ['example.properties']
args = ['version.properties']
}
-
-task echoVersion(type:Exec) {
- commandLine 'echo', "${-> project.version}"
-}
diff --git a/examples/java/gradle/wrapper/gradle-wrapper.jar b/examples/java/gradle/wrapper/gradle-wrapper.jar
index e708b1c..758de96 100644
Binary files a/examples/java/gradle/wrapper/gradle-wrapper.jar and b/examples/java/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/examples/java/gradle/wrapper/gradle-wrapper.properties b/examples/java/gradle/wrapper/gradle-wrapper.properties
index be52383..2d80b69 100644
--- a/examples/java/gradle/wrapper/gradle-wrapper.properties
+++ b/examples/java/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/examples/java/gradlew b/examples/java/gradlew
index 4f906e0..cccdd3d 100755
--- a/examples/java/gradlew
+++ b/examples/java/gradlew
@@ -1,21 +1,5 @@
#!/usr/bin/env sh
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
##############################################################################
##
## Gradle start up script for UN*X
@@ -44,7 +28,7 @@ APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
@@ -82,7 +66,6 @@ esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
@@ -126,11 +109,10 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
-# For Cygwin or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
@@ -156,19 +138,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
else
eval `echo args$i`="\"$arg\""
fi
- i=`expr $i + 1`
+ i=$((i+1))
done
case $i in
- 0) set -- ;;
- 1) set -- "$args0" ;;
- 2) set -- "$args0" "$args1" ;;
- 3) set -- "$args0" "$args1" "$args2" ;;
- 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
@@ -177,9 +159,14 @@ save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
-APP_ARGS=`save "$@"`
+APP_ARGS=$(save "$@")
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+ cd "$(dirname "$0")"
+fi
+
exec "$JAVACMD" "$@"
diff --git a/examples/java/gradlew.bat b/examples/java/gradlew.bat
index 107acd3..f955316 100644
--- a/examples/java/gradlew.bat
+++ b/examples/java/gradlew.bat
@@ -1,19 +1,3 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@@ -29,18 +13,15 @@ if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto execute
+if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -54,7 +35,7 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-if exist "%JAVA_EXE%" goto execute
+if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@@ -64,14 +45,28 @@ echo location of your Java installation.
goto fail
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
diff --git a/examples/java/java.iml b/examples/java/java.iml
deleted file mode 100644
index d6ebd48..0000000
--- a/examples/java/java.iml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/java/src/main/java/App.class b/examples/java/src/main/java/App.class
new file mode 100644
index 0000000..47d006c
Binary files /dev/null and b/examples/java/src/main/java/App.class differ
diff --git a/examples/java/src/main/java/App.java b/examples/java/src/main/java/App.java
index 32b2431..f1550d6 100644
--- a/examples/java/src/main/java/App.java
+++ b/examples/java/src/main/java/App.java
@@ -17,4 +17,4 @@ public class App {
}
}
}
-}
+}
\ No newline at end of file
diff --git a/examples/java/src/test/java/AppTest.java b/examples/java/src/test/java/AppTest.java
index b214b69..e5e3dd6 100644
--- a/examples/java/src/test/java/AppTest.java
+++ b/examples/java/src/test/java/AppTest.java
@@ -9,4 +9,4 @@ class AppTest {
assertAll("app should have a main method.",
() -> classUnderTest.getClass().getMethod("main", String[].class));
}
-}
+}
\ No newline at end of file
diff --git a/examples/java/version.properties b/examples/java/version.properties
index f5bf6aa..c9ca392 100644
--- a/examples/java/version.properties
+++ b/examples/java/version.properties
@@ -1,8 +1,7 @@
#Generated by the Semver Plugin for Gradle
-#Fri Sep 25 17:38:33 PDT 2020
-version.buildmeta=20200925173833
+#Fri Jul 13 15:27:29 PDT 2018
+version.buildmeta=20180713152249
version.major=1
-version.minor=0
-version.patch=0
-version.prerelease=
-version.semver=1.0.0+20200925173833
+version.minor=1
+version.patch=8
+version.prerelease=alpha
diff --git a/examples/kotlin/.gitignore b/examples/kotlin/.gitignore
index a78c5c2..6322c7f 100644
--- a/examples/kotlin/.gitignore
+++ b/examples/kotlin/.gitignore
@@ -1,82 +1,29 @@
-!.vscode/extensions.json
-!.vscode/launch.json
-!.vscode/settings.json
-!.vscode/tasks.json
-!gradle-wrapper.jar
+**/.idea/dictionaries
+**/.idea/gradle.xml
+**/.idea/libraries
+**/.idea/tasks.xml
+**/.idea/workspace.xml
+*.sublime-*
+*.iws
.classpath
.DS_Store
.gradle
-.history
-.idea_modules/
-.idea/**/contentModel.xml
-.idea/**/dataSources.ids
-.idea/**/dataSources.local.xml
-.idea/**/dataSources/
-.idea/**/dbnavigator.xml
-.idea/**/dictionaries
-.idea/**/dynamic.xml
-.idea/**/gradle.xml
-.idea/**/libraries
-.idea/**/mongoSettings.xml
-.idea/**/shelf
-.idea/**/sqlDataSources.xml
-.idea/**/tasks.xml
-.idea/**/uiDesigner.xml
-.idea/**/usage.statistics.xml
-.idea/**/workspace.xml
-.idea/caches/build_file_checksums.ser
-.idea/httpRequests
-.idea/replstate.xml
.kobalt
-.mtj.tmp/
-.mvn/timing.properties
-.mvn/wrapper/maven-wrapper.jar
.nb-gradle
.project
-.scannerwork
.settings
-.vscode/*
-*.class
-*.code-workspace
-*.ctxt
-*.ear
-*.iws
-*.jar
-*.log
-*.nar
-*.rar
-*.sublime-*
-*.tar.gz
-*.war
-*.zip
-atlassian-ide-plugin.xml
-bin/
-build/
-cmake-build-*/
-com_crashlytics_export_strings.xml
-crashlytics-build.properties
-crashlytics.properties
-dependency-reduced-pom.xml
-deploy/
-dist/
+/bin
+/build
+/deploy
+/dist
+/gen
+/gradle.properties
+/local.properties
+/out
+/proguard-project.txt
+/project.properties
+/target
+/test-output
ehthumbs.db
-fabric.properties
-gen/
-gradle.properties
-hs_err_pid*
kobaltBuild
-kobaltw*-test
-lib/kotlin*
-libs/
-local.properties
-out/
-pom.xml.next
-pom.xml.releaseBackup
-pom.xml.tag
-pom.xml.versionsBackup
-proguard-project.txt
-project.properties
-release.properties
-target/
-test-output
-Thumbs.db
+Thumbs.db
\ No newline at end of file
diff --git a/examples/kotlin/.idea/.name b/examples/kotlin/.idea/.name
new file mode 100644
index 0000000..e3bef29
--- /dev/null
+++ b/examples/kotlin/.idea/.name
@@ -0,0 +1 @@
+examples-kotlin
\ No newline at end of file
diff --git a/examples/kotlin/.idea/compiler.xml b/examples/kotlin/.idea/compiler.xml
index 3628231..ed63cad 100644
--- a/examples/kotlin/.idea/compiler.xml
+++ b/examples/kotlin/.idea/compiler.xml
@@ -2,8 +2,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/examples/kotlin/.idea/kotlinc.xml b/examples/kotlin/.idea/kotlinc.xml
new file mode 100644
index 0000000..5806fb3
--- /dev/null
+++ b/examples/kotlin/.idea/kotlinc.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/kotlin/.idea/misc.xml b/examples/kotlin/.idea/misc.xml
index db06c18..e707cdd 100644
--- a/examples/kotlin/.idea/misc.xml
+++ b/examples/kotlin/.idea/misc.xml
@@ -1,9 +1,6 @@
-
-
-
-
+
\ No newline at end of file
diff --git a/examples/kotlin/.idea/modules.xml b/examples/kotlin/.idea/modules.xml
index 825faa5..26eeb73 100644
--- a/examples/kotlin/.idea/modules.xml
+++ b/examples/kotlin/.idea/modules.xml
@@ -3,8 +3,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/examples/kotlin/.idea/modules/examples-kotlin.iml b/examples/kotlin/.idea/modules/examples-kotlin.iml
index 81fc2ee..49778f0 100644
--- a/examples/kotlin/.idea/modules/examples-kotlin.iml
+++ b/examples/kotlin/.idea/modules/examples-kotlin.iml
@@ -1,5 +1,5 @@
-
+
diff --git a/examples/kotlin/.idea/modules/examples-kotlin.main.iml b/examples/kotlin/.idea/modules/examples-kotlin_main.iml
similarity index 64%
rename from examples/kotlin/.idea/modules/examples-kotlin.main.iml
rename to examples/kotlin/.idea/modules/examples-kotlin_main.iml
index 9848c98..bb03ac5 100644
--- a/examples/kotlin/.idea/modules/examples-kotlin.main.iml
+++ b/examples/kotlin/.idea/modules/examples-kotlin_main.iml
@@ -1,33 +1,29 @@
-
+
-
-
-
+
+
-
-
-
-
+
@@ -35,8 +31,8 @@
-
-
+
+
\ No newline at end of file
diff --git a/examples/kotlin/.idea/modules/examples-kotlin.test.iml b/examples/kotlin/.idea/modules/examples-kotlin_test.iml
similarity index 55%
rename from examples/kotlin/.idea/modules/examples-kotlin.test.iml
rename to examples/kotlin/.idea/modules/examples-kotlin_test.iml
index 7925939..699754c 100644
--- a/examples/kotlin/.idea/modules/examples-kotlin.test.iml
+++ b/examples/kotlin/.idea/modules/examples-kotlin_test.iml
@@ -1,39 +1,29 @@
-
+
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
+
@@ -41,13 +31,13 @@
-
-
+
+
-
+
-
+
\ No newline at end of file
diff --git a/examples/kotlin/.idea/vcs.xml b/examples/kotlin/.idea/vcs.xml
deleted file mode 100644
index b2bdec2..0000000
--- a/examples/kotlin/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/examples/kotlin/build.gradle.kts b/examples/kotlin/build.gradle.kts
index d54e882..e9e68f5 100644
--- a/examples/kotlin/build.gradle.kts
+++ b/examples/kotlin/build.gradle.kts
@@ -1,26 +1,25 @@
+import net.thauvin.erik.gradle.semver.SemverConfig
import net.thauvin.erik.gradle.semver.SemverIncrementBuildMetaTask
import java.lang.String.format
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
plugins {
- kotlin("jvm").version("1.4.10")
+ kotlin("jvm") version "1.2.50"
application
- id("net.thauvin.erik.gradle.semver").version("1.0.4")
- id("com.github.ben-manes.versions").version("0.36.0")
+ id("net.thauvin.erik.gradle.semver") version "0.9.7-beta"
}
// ./gradlew
// ./gradlew incrementPatch run
// ./gradlew incrementMinor run
// ./gradlew incrementMajor run
-// ./gradlew incrementBuildMeta run
defaultTasks(ApplicationPlugin.TASK_RUN_NAME)
dependencies {
- implementation(kotlin("stdlib"))
- testImplementation("org.testng:testng:7.3.0")
+ compile(kotlin("stdlib"))
+ testCompile("org.testng:testng:6.14.3")
}
repositories {
@@ -29,12 +28,9 @@ repositories {
application {
mainClassName = "com.example.MainKt"
-// project.afterEvaluate {
-// println("Version: $version")
-// }
}
-semver {
+configure {
// properties = "example.properties"
// keysPrefix = "example."
// preReleaseKey = "release"
@@ -46,14 +42,14 @@ tasks {
useTestNG()
}
- "incrementBuildMeta"(SemverIncrementBuildMetaTask::class) {
+ val incrementBuildMeta by getting(SemverIncrementBuildMetaTask::class) {
doFirst {
// buildMeta = format("%03d", buildMeta.toInt() + 1)
buildMeta = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddHHmmss"))
}
}
- "run"(JavaExec::class) {
+ val run by getting(JavaExec::class) {
doFirst {
println("Version: $version")
}
diff --git a/examples/kotlin/example.properties b/examples/kotlin/example.properties
index 849d314..252c996 100644
--- a/examples/kotlin/example.properties
+++ b/examples/kotlin/example.properties
@@ -1,7 +1,7 @@
#Generated by the Semver Plugin for Gradle
-#Thu Nov 01 18:52:15 PDT 2018
+#Sun Jul 01 20:17:52 PDT 2018
example.major=1
-example.meta=20181101185211
+example.release=beta
+example.meta=
example.minor=0
example.patch=0
-example.release=beta
diff --git a/examples/kotlin/gradle/wrapper/gradle-wrapper.jar b/examples/kotlin/gradle/wrapper/gradle-wrapper.jar
index e708b1c..758de96 100644
Binary files a/examples/kotlin/gradle/wrapper/gradle-wrapper.jar and b/examples/kotlin/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/examples/kotlin/gradle/wrapper/gradle-wrapper.properties b/examples/kotlin/gradle/wrapper/gradle-wrapper.properties
index be52383..2d80b69 100644
--- a/examples/kotlin/gradle/wrapper/gradle-wrapper.properties
+++ b/examples/kotlin/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/examples/kotlin/gradlew b/examples/kotlin/gradlew
index 4f906e0..cccdd3d 100755
--- a/examples/kotlin/gradlew
+++ b/examples/kotlin/gradlew
@@ -1,21 +1,5 @@
#!/usr/bin/env sh
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
##############################################################################
##
## Gradle start up script for UN*X
@@ -44,7 +28,7 @@ APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
@@ -82,7 +66,6 @@ esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
@@ -126,11 +109,10 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
-# For Cygwin or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
@@ -156,19 +138,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
else
eval `echo args$i`="\"$arg\""
fi
- i=`expr $i + 1`
+ i=$((i+1))
done
case $i in
- 0) set -- ;;
- 1) set -- "$args0" ;;
- 2) set -- "$args0" "$args1" ;;
- 3) set -- "$args0" "$args1" "$args2" ;;
- 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
@@ -177,9 +159,14 @@ save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
-APP_ARGS=`save "$@"`
+APP_ARGS=$(save "$@")
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+ cd "$(dirname "$0")"
+fi
+
exec "$JAVACMD" "$@"
diff --git a/examples/kotlin/gradlew.bat b/examples/kotlin/gradlew.bat
index 107acd3..f955316 100644
--- a/examples/kotlin/gradlew.bat
+++ b/examples/kotlin/gradlew.bat
@@ -1,19 +1,3 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@@ -29,18 +13,15 @@ if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto execute
+if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -54,7 +35,7 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-if exist "%JAVA_EXE%" goto execute
+if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@@ -64,14 +45,28 @@ echo location of your Java installation.
goto fail
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
diff --git a/examples/kotlin/src/main/kotlin/com/example/Main.kt b/examples/kotlin/src/main/kotlin/com/example/Main.kt
index caaa0c1..4ef488b 100644
--- a/examples/kotlin/src/main/kotlin/com/example/Main.kt
+++ b/examples/kotlin/src/main/kotlin/com/example/Main.kt
@@ -13,4 +13,4 @@ fun main(args: Array) {
}
}
}
-}
+}
\ No newline at end of file
diff --git a/examples/kotlin/src/test/kotlin/com/example/MainTest.kt b/examples/kotlin/src/test/kotlin/com/example/MainTest.kt
index e49aac0..96458e9 100644
--- a/examples/kotlin/src/test/kotlin/com/example/MainTest.kt
+++ b/examples/kotlin/src/test/kotlin/com/example/MainTest.kt
@@ -5,4 +5,4 @@ import org.testng.annotations.Test
class ExampleTest {
@Test
fun f() = println("Running test")
-}
+}
\ No newline at end of file
diff --git a/examples/kotlin/version.properties b/examples/kotlin/version.properties
index 98e937a..ebee42b 100644
--- a/examples/kotlin/version.properties
+++ b/examples/kotlin/version.properties
@@ -1,8 +1,7 @@
#Generated by the Semver Plugin for Gradle
-#Mon Nov 09 21:24:16 PST 2020
-version.buildmeta=20201109212416
+#Fri Jul 13 15:52:43 PDT 2018
+version.buildmeta=20180713155232
version.major=1
version.minor=2
version.patch=4
version.prerelease=beta
-version.semver=1.2.4-beta+20201109212416
diff --git a/examples/test/.gitignore b/examples/test/.gitignore
index 4d64aee..7de13c3 100644
--- a/examples/test/.gitignore
+++ b/examples/test/.gitignore
@@ -1,83 +1,31 @@
-!.vscode/extensions.json
-!.vscode/launch.json
-!.vscode/settings.json
-!.vscode/tasks.json
-!gradle-wrapper.jar
+**/.idea/dictionaries
+**/.idea/gradle.xml
+**/.idea/libraries
+**/.idea/tasks.xml
+**/.idea/workspace.xml
+**/src/*.class
+*.iws
+*.properties
+*.sublime-*
.classpath
.DS_Store
.gradle
-.history
-.idea_modules/
-.idea/**/contentModel.xml
-.idea/**/dataSources.ids
-.idea/**/dataSources.local.xml
-.idea/**/dataSources/
-.idea/**/dbnavigator.xml
-.idea/**/dictionaries
-.idea/**/dynamic.xml
-.idea/**/gradle.xml
-.idea/**/libraries
-.idea/**/mongoSettings.xml
-.idea/**/shelf
-.idea/**/sqlDataSources.xml
-.idea/**/tasks.xml
-.idea/**/uiDesigner.xml
-.idea/**/usage.statistics.xml
-.idea/**/workspace.xml
-.idea/caches/build_file_checksums.ser
-.idea/httpRequests
-.idea/replstate.xml
.kobalt
-.mtj.tmp/
-.mvn/timing.properties
-.mvn/wrapper/maven-wrapper.jar
.nb-gradle
.project
-.scannerwork
.settings
-.vscode/*
-*.class
-*.code-workspace
-*.ctxt
-*.ear
-*.iws
-*.jar
-*.log
-*.nar
-*.rar
-*.sublime-*
-*.tar.gz
-*.war
-*.zip
-atlassian-ide-plugin.xml
-bin/
-build/
-cmake-build-*/
-com_crashlytics_export_strings.xml
-crashlytics-build.properties
-crashlytics.properties
-dependency-reduced-pom.xml
-deploy/
-dist/
+/bin
+/build
+/deploy
+/dist
+/gen
+/gradle.properties
+/local.properties
+/out
+/proguard-project.txt
+/project.properties
+/target
+/test-output
ehthumbs.db
-fabric.properties
-gen/
-gradle.properties
-hs_err_pid*
kobaltBuild
-kobaltw*-test
-lib/kotlin*
-libs/
-local.properties
-out/
-pom.xml.next
-pom.xml.releaseBackup
-pom.xml.tag
-pom.xml.versionsBackup
-proguard-project.txt
-project.properties
-release.properties
-target/
-test-output
-Thumbs.db
-version.properties
+Thumbs.db
\ No newline at end of file
diff --git a/examples/test/build.gradle b/examples/test/build.gradle
index 9813e76..bb3705f 100644
--- a/examples/test/build.gradle
+++ b/examples/test/build.gradle
@@ -1,10 +1,14 @@
+// plugins {
+// id 'java'
+// id 'application'
+// id "net.thauvin.erik.gradle.semver" version "0.9.4-beta"
+// }
buildscript {
repositories {
mavenLocal()
- mavenCentral()
}
dependencies {
- classpath "net.thauvin.erik.gradle:semver:1.0.5-beta"
+ classpath "net.thauvin.erik.gradle:semver:0.9.7-beta"
}
}
@@ -14,29 +18,27 @@ apply plugin: 'net.thauvin.erik.gradle.semver'
mainClassName = 'App'
-//version = 1.0
+version = 1.0
-def f = new File("version.properties")
-
-def semverProcessor = 'net.thauvin.erik:semver:1.2.0'
+def f = new File("test.properties")
dependencies {
- annotationProcessor semverProcessor
- compileOnly semverProcessor
+
}
repositories {
- mavenLocal()
jcenter()
}
-application {
- println(project.version)
- project.afterEvaluate {
- println(project.version)
- }
+clean {
+ delete fileTree(dir: "$projectDir", include: "*.properties")
}
+incrementPatch {
+ doFirst {
+ println("[Gradle] exists: " + f.exists() + ", canRead: " + f.canRead())
+ }
+}
incrementBuildMeta {
doFirst {
@@ -46,19 +48,15 @@ incrementBuildMeta {
}
run {
+ //dependsOn("incrementPatch")
doFirst {
- println("Version: $semver.major$semver.separator$semver.minor$semver.separator$semver.patch$semver.preReleasePrefix$semver.preRelease$semver.buildMetaPrefix$semver.buildMeta")
+ println("Version: $version")
args = [f.name]
}
}
-task echoVersion(type:Exec) {
- commandLine "echo", "${-> version}"
-}
-
semver {
- properties = "${f.name}"
+ properties = "$projectDir/${f.name}"
keysPrefix = f.name.substring(0, f.name.indexOf(".") + 1)
buildMetaKey = "meta"
- semverKey = "fullversion"
}
diff --git a/examples/test/gradle/wrapper/gradle-wrapper.jar b/examples/test/gradle/wrapper/gradle-wrapper.jar
index 5c2d1cf..758de96 100644
Binary files a/examples/test/gradle/wrapper/gradle-wrapper.jar and b/examples/test/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/examples/test/gradle/wrapper/gradle-wrapper.properties b/examples/test/gradle/wrapper/gradle-wrapper.properties
index 4b7e1f3..2d80b69 100644
--- a/examples/test/gradle/wrapper/gradle-wrapper.properties
+++ b/examples/test/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.5.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/examples/test/gradlew b/examples/test/gradlew
index 8e25e6c..cccdd3d 100755
--- a/examples/test/gradlew
+++ b/examples/test/gradlew
@@ -1,21 +1,5 @@
#!/usr/bin/env sh
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
##############################################################################
##
## Gradle start up script for UN*X
@@ -44,7 +28,7 @@ APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
diff --git a/examples/test/gradlew.bat b/examples/test/gradlew.bat
index 9618d8d..f955316 100644
--- a/examples/test/gradlew.bat
+++ b/examples/test/gradlew.bat
@@ -1,19 +1,3 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@@ -30,7 +14,7 @@ set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
diff --git a/examples/test/locked b/examples/test/locked
deleted file mode 100644
index e69de29..0000000
diff --git a/examples/test/locked.properties b/examples/test/locked.properties
deleted file mode 100644
index 03fc5bd..0000000
--- a/examples/test/locked.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-#Generated by the Semver Plugin for Gradle
-#Fri Apr 19 13:31:37 PDT 2019
-version.fullversion=11.0.0-alpha+20190419133137
-version.major=11
-version.meta=20190419133137
-version.minor=0
-version.patch=0
-version.prerelease=alpha
diff --git a/examples/test/src/test/java/AppTest.java b/examples/test/src/test/java/AppTest.java
new file mode 100644
index 0000000..7bd2702
--- /dev/null
+++ b/examples/test/src/test/java/AppTest.java
@@ -0,0 +1,15 @@
+/*
+ * This Java source file was generated by the Gradle 'init' task.
+ */
+
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class AppTest {
+ @Test
+ public void testAppHasAGreeting() {
+ App classUnderTest = new App();
+ assertNotNull("app should have a greeting", classUnderTest.getGreeting());
+ }
+}
diff --git a/examples/version.properties b/examples/version.properties
deleted file mode 100644
index e60c0e6..0000000
--- a/examples/version.properties
+++ /dev/null
@@ -1,8 +0,0 @@
-#Generated by the Semver Plugin for Gradle
-#Thu May 23 22:24:06 PDT 2019
-version.fullversion=1.0.0
-version.major=1
-version.meta=
-version.minor=0
-version.patch=0
-version.prerelease=
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index e708b1c..758de96 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index be52383..2d80b69 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.8.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index 4f906e0..cccdd3d 100755
--- a/gradlew
+++ b/gradlew
@@ -1,21 +1,5 @@
#!/usr/bin/env sh
-#
-# Copyright 2015 the original author or authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
##############################################################################
##
## Gradle start up script for UN*X
@@ -44,7 +28,7 @@ APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
+DEFAULT_JVM_OPTS=""
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
@@ -82,7 +66,6 @@ esac
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
@@ -126,11 +109,10 @@ if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
-# For Cygwin or MSYS, switch paths to Windows format before running java
-if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
-
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
@@ -156,19 +138,19 @@ if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
else
eval `echo args$i`="\"$arg\""
fi
- i=`expr $i + 1`
+ i=$((i+1))
done
case $i in
- 0) set -- ;;
- 1) set -- "$args0" ;;
- 2) set -- "$args0" "$args1" ;;
- 3) set -- "$args0" "$args1" "$args2" ;;
- 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+ (0) set -- ;;
+ (1) set -- "$args0" ;;
+ (2) set -- "$args0" "$args1" ;;
+ (3) set -- "$args0" "$args1" "$args2" ;;
+ (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+ (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+ (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+ (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+ (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+ (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
@@ -177,9 +159,14 @@ save () {
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
echo " "
}
-APP_ARGS=`save "$@"`
+APP_ARGS=$(save "$@")
# Collect all arguments for the java command, following the shell quoting and substitution rules
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+ cd "$(dirname "$0")"
+fi
+
exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
index 107acd3..f955316 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -1,19 +1,3 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@@ -29,18 +13,15 @@ if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+set DEFAULT_JVM_OPTS=
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto execute
+if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -54,7 +35,7 @@ goto fail
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-if exist "%JAVA_EXE%" goto execute
+if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
@@ -64,14 +45,28 @@ echo location of your Java installation.
goto fail
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
diff --git a/preflightcheck.sh b/preflightcheck.sh
deleted file mode 100644
index f95e229..0000000
--- a/preflightcheck.sh
+++ /dev/null
@@ -1,212 +0,0 @@
-#!/bin/bash
-
-# set source and test locations
-src="src/main/kotlin/net/thauvin/erik/gradle/semver/"
-test="src/main/kotlin/net/thauvin/erik/gradle/semver/"
-# e.g: .java, .kt, etc.
-ext=".kt"
-java8=true
-# e.g:
-declare -a examples=(
- "examples/java incrementBuildMeta run"
- "examples/kotlin incrementBuildMeta run"
- "examples/annotation-processor/java incrementMinor run"
- "examples/annotation-processor/kotlin incrementMinor run")
-# e.g: empty or javadoc, etc.
-gradle_doc=""
-# e.g. empty or sonarqube
-gradle_sonar="sonarqube"
-# gradle options for examples
-gradle_opts="--console=plain --no-build-cache --no-daemon"
-# maven arguments for examples
-maven_args="compile exec:java"
-
-#
-# Version: 1.1.3
-#
-
-if [ "$java8" = true ]
-then
- export JAVA_HOME="$JAVA8_HOME"
- export PATH="$(cygpath "$JAVA_HOME")/bin:$PATH"
-fi
-
-pwd=$PWD
-red=$(tput setaf 1)
-cyan=$(tput setaf 6)
-std=$(tput sgr0)
-date=$(date +%Y)
-
-pause() {
- read -p "Press [Enter] key to continue..."
-}
-
-checkCopyright() {
- if [ "$(grep -c "$date" "$1")" -eq 0 ]
- then
- echo -e " Invalid: ${red}$f${std}"
- else
- echo -e " Checked: $1"
- fi
-}
-
-runGradle() {
- cd "$1" || exit 1
- clear
- reset
- echo -e "> Project: ${cyan}${1}${std} [Gradle]"
- shift
- ./gradlew $@ || exit 1
- pause
- cd "$pwd"
-}
-
-runKobalt() {
- cd "$1" || exit 1
- if [ -f kobalt/src/Build.kt ]
- then
- clear
- reset
- echo -e "> Project: ${cyan}${1}${std} [Kobalt]"
- shift
- ./kobaltw $@ || exit 1
- pause
- fi
- cd "$pwd"
-}
-
-runMaven() {
- cd "$1" || exit 1
- if [ -f pom.xml ]
- then
- clear
- reset
- echo -e "> Project: ${cyan}${1}${std} [Maven]"
- shift
- mvn $@ || exit 1
- pause
- fi
- cd "$pwd"
-}
-
-updateWrappers() {
- clear
- ./updatewrappers.sh
- pause
-}
-
-checkDeps() {
- clear
- echo -e "${cyan}Checking depencencies...${std}"
- gradle --console=plain dU || exit 1
- read -p "Check Examples depencencies? [y/n] " cont
- clear
- case $cont in
- [Nn] ) return ;;
- * ) for ex in "${!examples[@]}"
- do
- runGradle $(echo "${examples[ex]}" | cut -d " " -f 1) dU
- runKobalt $(echo "${examples[ex]}" | cut -d " " -f 1) checkVersions
- runMaven $(echo "${examples[ex]}" | cut -d " " -f 1) versions:display-dependency-updates
- if [ "$ex" -eq "${#examples}" ]
- then
- read -p "Continue? [y/n]: " cont
- clear
- case $cont in
- * ) continue ;;
- [Nn] ) return ;;
- esac
- fi
- done ;;
- esac
-}
-
-gradleCheck() {
- clear
- echo -e "${cyan}Checking Gradle build....${std}"
- gradle $gradle_opts clean check $gradle_doc $gradle_sonar || exit 1
- pause
-}
-
-runExamples() {
- for ex in "${!examples[@]}"
- do
- runGradle ${examples[ex]} clean $gradle_opts
- runKobalt ${examples[ex]} clean
- runMaven $(echo "${examples[ex]}" | cut -d " " -f 1) clean $maven_args
- done
-}
-
-examplesMenu() {
- clear
- echo -e "${cyan}Examples${std}"
- for ex in "${!examples[@]}"
- do
- printf ' %d. %s\n' $(($ex + 1)) $(echo "${examples[ex]}" | cut -d " " -f 1)
- done
- echo " $((${#examples[@]} + 1)). Run All Examples"
- read -p "Enter choice [1-${#examples[@]}]: " choice
- clear
- case $choice in
- [0-9] ) if [ "$choice" -gt "${#examples[@]}" ]
- then
- runExamples
- examplesMenu
- else
- runGradle ${examples[$(($choice - 1))]}
- runKobalt ${examples[$(($choice - 1))]}
- runMaven $(echo "${examples[$(($choice - 1))]}" | cut -d " " -f 1) $maven_args
- examplesMenu
- fi ;;
- * ) return ;;
- esac
-}
-
-validateCopyrights() {
- clear
- echo -e "${cyan}Validating copyrights...${std}"
- for f in LICENSE.TXT ${src}/*${ext} ${test}/*${ext}
- do
- checkCopyright "$f"
- done
- pause
-}
-
-everything() {
- updateWrappers
- checkDeps
- gradleCheck
- runExamples
- validateCopyrights
-}
-
-showMenu() {
- clear
- echo "${cyan}Preflight Check${std}"
- echo " 1. Update Wrappers"
- echo " 2. Check Dependencies"
- echo " 3. Check Gradle Build"
- echo " 4. Run Examples"
- echo " 5. Validate Copyrights"
- echo " 6. Check Everything"
-}
-
-readOptions() {
- local choice
- read -p "Enter choice [1-6]: " choice
- case $choice in
- 1) updateWrappers ;;
- 2) checkDeps ;;
- 3) gradleCheck ;;
- 4) examplesMenu ;;
- 5) validateCopyrights ;;
- 6) everything ;;
- *) exit 0 ;;
- esac
-}
-
-while true
-do
- showMenu
- readOptions
-done
diff --git a/settings.gradle.kts b/settings.gradle.kts
index e9b895f..849893a 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -1,17 +1,2 @@
-plugins {
- id("com.gradle.enterprise").version("3.3.4")
-}
-
-gradleEnterprise {
- buildScan {
- link("GitHub", "https://github.com/ethauvin/semver-gradle/tree/master")
- if ("true" == System.getenv("CI")) {
- publishOnFailure()
- tag("CI")
- }
- termsOfServiceUrl = "https://gradle.com/terms-of-service"
- termsOfServiceAgree = "yes"
- }
-}
-
rootProject.name = "semver"
+enableFeaturePreview("STABLE_PUBLISHING")
\ No newline at end of file
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverConfig.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverConfig.kt
index 06a8f7b..d27d57a 100644
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverConfig.kt
+++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverConfig.kt
@@ -1,7 +1,7 @@
/*
* SemverConfig.kt
*
- * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
+ * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,18 +29,12 @@
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
package net.thauvin.erik.gradle.semver
-import javax.inject.Inject
-
-open class SemverConfig @Inject constructor(
- private val semVersion: Version
-) {
+open class SemverConfig {
companion object {
const val DEFAULT_KEYS_PREFIX = "version."
const val DEFAULT_PROPERTIES = "${DEFAULT_KEYS_PREFIX}properties"
- const val DEFAULT_SEMVER_KEY = "semver"
const val DEFAULT_MAJOR_KEY = "major"
const val DEFAULT_MINOR_KEY = "minor"
const val DEFAULT_PATCH_KEY = "patch"
@@ -52,10 +46,6 @@ open class SemverConfig @Inject constructor(
}
var properties = DEFAULT_PROPERTIES
-
- // Keys
- var semverKey = DEFAULT_SEMVER_KEY
- get() = "$keysPrefix$field"
var majorKey = DEFAULT_MAJOR_KEY
get() = "$keysPrefix$field"
var minorKey = DEFAULT_MINOR_KEY
@@ -73,51 +63,4 @@ open class SemverConfig @Inject constructor(
var separatorKey = DEFAULT_SEPARATOR
get() = "$keysPrefix$field"
var keysPrefix = DEFAULT_KEYS_PREFIX
-
- // Extension Properties
- val semver: String
- get() = semVersion.semver
- val version: String
- get() = semVersion.semver
- val major: Int
- get() = semVersion.major
- val minor: Int
- get() = semVersion.minor
- val patch: Int
- get() = semVersion.patch
- val preRelease: String
- get() = semVersion.preRelease
- val buildMeta: String
- get() = semVersion.buildMeta
- val preReleasePrefix: String
- get() = semVersion.preReleasePrefix
- val buildMetaPrefix: String
- get() = semVersion.buildMetaPrefix
- val separator: String
- get() = semVersion.separator
-
- override fun toString(): String {
- return "SemverConfig(" +
- "properties='$properties', " +
- "semverKey='$semverKey', " +
- "majorKey='$majorKey', " +
- "minorKey='$minorKey', " +
- "patchKey='$patchKey', " +
- "preReleaseKey='$preReleaseKey', " +
- "preReleasePrefixKey='$preReleasePrefixKey', " +
- "buildMetaKey='$buildMetaKey', " +
- "buildMetaPrefixKey='$buildMetaPrefixKey', " +
- "separator='$separatorKey', " +
- "keysPrefix='$keysPrefix', " +
- "semver='$semver', " +
- "major='$major', " +
- "minor='$minor', " +
- "patch='$patch', " +
- "preRelease='$preRelease', " +
- "buildMeta='$buildMeta', " +
- "preReleasePrefix='$preReleasePrefix', " +
- "buildMetaPrefix='$buildMetaPrefix', " +
- "separator='$separator'" +
- ')'
- }
}
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementBuildMetaTask.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementBuildMetaTask.kt
index 7463ba0..187dccb 100644
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementBuildMetaTask.kt
+++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementBuildMetaTask.kt
@@ -1,7 +1,7 @@
/*
- * SemverIncrementBuildMetaTask.kt
+ * SemverIncrementBuildmetaTask.kt
*
- * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
+ * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,7 +29,6 @@
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
package net.thauvin.erik.gradle.semver
import org.gradle.api.DefaultTask
@@ -45,7 +44,7 @@ open class SemverIncrementBuildMetaTask @Inject constructor(
) : DefaultTask() {
init {
group = "version"
- description = "Increments Build version metadata."
+ description = "Increments Build Metadata version number."
}
@Suppress("MemberVisibilityCanBePrivate")
@@ -59,7 +58,7 @@ open class SemverIncrementBuildMetaTask @Inject constructor(
version.buildMeta = buildMeta
project.version = version.semver
logger.lifecycle("Version: ${project.version}")
- Utils.saveProperties(project.projectDir, config, version)
+ SemverPlugin.saveProperties(config, version)
}
}
}
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementTask.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementTask.kt
index 9e5af44..c7e6d43 100644
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementTask.kt
+++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverIncrementTask.kt
@@ -1,7 +1,7 @@
/*
* SemverIncrementTask.kt
*
- * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
+ * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,7 +29,6 @@
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
package net.thauvin.erik.gradle.semver
import org.gradle.api.DefaultTask
@@ -54,10 +53,9 @@ open class SemverIncrementTask @Inject constructor(
version.increment(
isMajor = type == SemverConfig.DEFAULT_MAJOR_KEY,
isMinor = type == SemverConfig.DEFAULT_MINOR_KEY,
- isPatch = type == SemverConfig.DEFAULT_PATCH_KEY
- )
+ isPatch = type == SemverConfig.DEFAULT_PATCH_KEY)
project.version = version.semver
logger.lifecycle("Version: ${project.version}")
- Utils.saveProperties(project.projectDir, config, version)
+ SemverPlugin.saveProperties(config, version)
}
}
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt
index 1e137e7..6f06651 100644
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt
+++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/SemverPlugin.kt
@@ -1,7 +1,7 @@
/*
* SemverPlugin.kt
*
- * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
+ * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,25 +29,49 @@
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
package net.thauvin.erik.gradle.semver
import org.gradle.api.GradleException
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.util.GradleVersion
+import java.io.File
+import java.io.FileInputStream
+import java.io.FileOutputStream
+import java.util.Properties
class SemverPlugin : Plugin {
private val simpleName = SemverPlugin::class.simpleName
private var version = Version()
private lateinit var config: SemverConfig
- override fun apply(project: Project) {
+ companion object {
+ fun saveProperties(config: SemverConfig, version: Version) {
+ SortedProperties().apply {
+ put(config.majorKey, version.major)
+ put(config.minorKey, version.minor)
+ put(config.patchKey, version.patch)
+ put(config.preReleaseKey, version.preRelease)
+ put(config.buildMetaKey, version.buildMeta)
+ if (version.buildMetaPrefix != Version.DEFAULT_BUILDMETA_PREFIX)
+ put(config.buildMetaPrefixKey, version.buildMetaPrefix)
+ if (version.preReleasePrefix != Version.DEFAULT_PRERELEASE_PREFIX)
+ put(config.preReleasePrefixKey, version.preReleasePrefix)
+ if (version.separator != Version.DEFAULT_SEPARATOR)
+ put(config.separatorKey, version.separator)
+ FileOutputStream(config.properties).writer().use { writer ->
+ store(writer, "Generated by the Semver Plugin for Gradle")
+ }
+ }
+ }
+ }
+
+ override fun apply(project: Project?) {
if (GradleVersion.current() < GradleVersion.version("4.8.1")) {
throw GradleException("The $simpleName plugin requires Gradle version 4.8.1 or greater.")
}
- config = project.extensions.create("semver", SemverConfig::class.java, version)
- project.afterEvaluate(this::afterEvaluate)
+ project!!.afterEvaluate(this::afterEvaluate)
+ config = project.extensions.create("semver", SemverConfig::class.java)
project.tasks.apply {
create("incrementMajor", SemverIncrementTask::class.java, config, version, SemverConfig.DEFAULT_MAJOR_KEY)
@@ -58,43 +82,41 @@ class SemverPlugin : Plugin {
}
private fun afterEvaluate(project: Project) {
- val propsFile = Utils.getPropertiesFile(project.projectDir, config.properties)
-
+ val propsFile = File(config.properties)
if (project.version != "unspecified") {
project.logger.warn(
- "Please specify the version in ${propsFile.name} and remove it from ${project.buildFile.name}"
- )
+ "Please specify the version in ${propsFile.name} and remove it from ${project.buildFile.name}")
}
-
propsFile.apply {
- val isNew = !exists()
-
project.logger.info(
- "[$simpleName] Attempting to read properties from: `$absoluteFile`. " +
- "[exists: $isNew, isFile: $isFile, canRead: ${canRead()}]"
- )
+ "[$simpleName] Attempting to read properties from: `$absoluteFile`. [exists: ${exists()}, isFile: $isFile, canRead: ${canRead()}]")
+ if (canRead() && isFile) {
+ FileInputStream(this).reader().use { reader ->
+ Properties().apply {
+ load(reader)
- val props = Utils.loadProperties(this)
- val requiredProps = setOf(
- config.semverKey, config.majorKey, config.minorKey, config.patchKey,
- config.preReleaseKey, config.buildMetaKey
- )
- val hasReqProps = !isNew && props.stringPropertyNames().containsAll(requiredProps) &&
- Utils.isNotSystemProperty(requiredProps)
+ version.major = getProperty(config.majorKey, Version.DEFAULT_MAJOR)
+ version.minor = getProperty(config.minorKey, Version.DEFAULT_MINOR)
+ version.patch = getProperty(config.patchKey, Version.DEFAULT_PATCH)
+ version.preRelease = getProperty(config.preReleaseKey, Version.DEFAULT_EMPTY)
+ version.preReleasePrefix =
+ getProperty(config.preReleasePrefixKey, Version.DEFAULT_PRERELEASE_PREFIX)
+ version.buildMeta = getProperty(config.buildMetaKey, Version.DEFAULT_EMPTY)
+ version.buildMetaPrefix =
+ getProperty(config.buildMetaPrefixKey, Version.DEFAULT_BUILDMETA_PREFIX)
+ version.separator = getProperty(config.separatorKey, Version.DEFAULT_SEPARATOR)
- Utils.loadVersion(config, version, props)
-
- project.tasks.withType(SemverIncrementBuildMetaTask::class.java) {
- buildMeta = version.buildMeta
+ project.tasks.withType(SemverIncrementBuildMetaTask::class.java) {
+ buildMeta = version.buildMeta
+ }
+ }
+ }
+ } else if (exists()) {
+ throw GradleException("Unable to read version from: `$absoluteFile`")
}
-
project.version = version.semver
project.logger.info("[$simpleName] Project version set to: ${project.version}")
-
- if (!hasReqProps || !isFile) {
- project.logger.info("[$simpleName] Saving version properties to `$absoluteFile`.")
- Utils.saveProperties(project.projectDir, config, version)
- }
+ saveProperties(config, version)
}
}
}
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/SortedProperties.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/SortedProperties.kt
index 1a99d15..0ceb358 100644
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/SortedProperties.kt
+++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/SortedProperties.kt
@@ -1,7 +1,7 @@
/*
* SortedProperties.kt
*
- * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
+ * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,7 +29,6 @@
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
package net.thauvin.erik.gradle.semver
import java.util.Collections
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/Utils.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/Utils.kt
deleted file mode 100644
index e7cd681..0000000
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/Utils.kt
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Utils.kt
- *
- * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * Neither the name of this project nor the names of its contributors may be
- * used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-package net.thauvin.erik.gradle.semver
-
-import org.gradle.api.GradleException
-import java.io.File
-import java.io.FileInputStream
-import java.io.FileOutputStream
-import java.io.IOException
-import java.util.Properties
-
-/**
- * The Utils
class.
- *
- * @author Erik C. Thauvin
- * @created 2019-04-10
- * @since 1.0
- */
-object Utils {
- fun File.canReadFile(): Boolean {
- return canRead() && isFile
- }
-
- private fun Properties.put(key: String, value: String, isValidCondition: Boolean) {
- if (isValidCondition) put(key, value)
- }
-
- fun isNotSystemProperty(keys: Set): Boolean {
- keys.forEach {
- if (System.getProperties().containsKey(it)) return false
- }
- return true
- }
-
- fun getPropertiesFile(projectDir: File, propsFile: String): File {
- return if (File(propsFile).isAbsolute) {
- File(propsFile)
- } else {
- File(projectDir, propsFile)
- }
- }
-
- fun loadProperties(file: File): Properties {
- var isNew = false
- val props = Properties()
- file.apply {
- try {
- if (!exists() && createNewFile()) {
- isNew = true
- }
- } catch (e: IOException) {
- throw GradleException("Unable to create: `$absoluteFile`", e)
- }
- if (canReadFile()) {
- FileInputStream(this).reader().use { reader ->
- props.apply {
- if (!isNew) {
- load(reader)
- }
- }
- }
- } else {
- throw GradleException("Unable to read version from: `$absoluteFile`")
- }
- }
- return props
- }
-
- fun loadIntProperty(props: Properties, key: String, default: Int): Int {
- try {
- return loadProperty(props, key, default.toString()).toInt()
- } catch (e: java.lang.NumberFormatException) {
- throw GradleException("Unable to parse $key property. (${e.message})", e)
- }
- }
-
- fun loadProperty(props: Properties, key: String, default: String): String {
- return System.getProperty(key, if (props.isNotEmpty()) props.getProperty(key, default) else default)
- }
-
- fun loadVersion(config: SemverConfig, version: Version, props: Properties) {
- props.apply {
- if (!parseSemVer(System.getProperty(config.semverKey), version)) {
- version.major = loadIntProperty(this, config.majorKey, Version.DEFAULT_MAJOR)
- version.minor = loadIntProperty(this, config.minorKey, Version.DEFAULT_MINOR)
- version.patch = loadIntProperty(this, config.patchKey, Version.DEFAULT_PATCH)
- version.preRelease = loadProperty(this, config.preReleaseKey, Version.DEFAULT_EMPTY)
- version.buildMeta = loadProperty(this, config.buildMetaKey, Version.DEFAULT_EMPTY)
- }
-
- if (!isEmpty) {
- version.preReleasePrefix =
- getProperty(config.preReleasePrefixKey, Version.DEFAULT_PRERELEASE_PREFIX)
- version.buildMetaPrefix =
- getProperty(config.buildMetaPrefixKey, Version.DEFAULT_BUILDMETA_PREFIX)
- version.separator = getProperty(config.separatorKey, Version.DEFAULT_SEPARATOR)
- }
- }
- }
-
- fun parseSemVer(input: String?, version: Version): Boolean {
- if (input.isNullOrBlank()) return false
-
- try {
- val max = 5
- val min = 3
-
- val parts = input.split(
- Regex("[\\Q${version.separator}${version.preReleasePrefix}${version.buildMetaPrefix}\\E]"),
- max
- )
-
- if (parts.size >= min) {
- version.major = parts[0].toInt()
- version.minor = parts[1].toInt()
- version.patch = parts[2].toInt()
- version.preRelease = ""
- version.buildMeta = ""
-
- if (parts.size > min) {
- when {
- parts.size == max -> {
- version.preRelease = parts[3]
- version.buildMeta = parts[4]
- }
- parts.size == 4 -> {
- if (input.endsWith(version.buildMetaPrefix + parts[3])) {
- version.buildMeta = parts[3]
- } else {
- version.preRelease = parts[3]
- }
- }
- }
- }
- } else {
- throw NumberFormatException("Not enough parts.")
- }
- } catch (e: NumberFormatException) {
- throw GradleException("Unable to parse version: \"$input\" (${e.message})", e)
- }
-
- return true
- }
-
- fun saveProperties(projectDir: File, config: SemverConfig, version: Version) {
- val propsFile = getPropertiesFile(projectDir, config.properties)
- SortedProperties().apply {
- try {
- propsFile.apply {
- if (canReadFile()) {
- FileInputStream(this).reader().use { load(it) }
- } else {
- createNewFile()
- }
-
- put(config.semverKey, version.semver)
- put(config.majorKey, version.major.toString())
- put(config.minorKey, version.minor.toString())
- put(config.patchKey, version.patch.toString())
- put(config.preReleaseKey, version.preRelease)
- put(config.buildMetaKey, version.buildMeta)
- put(config.semverKey, version.semver)
-
- put(
- config.buildMetaPrefixKey, version.buildMetaPrefix,
- version.buildMetaPrefix != Version.DEFAULT_BUILDMETA_PREFIX ||
- containsKey(config.buildMetaPrefixKey)
- )
- put(
- config.preReleasePrefixKey, version.preReleasePrefix,
- version.preReleasePrefix != Version.DEFAULT_PRERELEASE_PREFIX ||
- containsKey(config.preReleasePrefixKey)
- )
- put(
- config.separatorKey, version.separator,
- version.separator != Version.DEFAULT_SEPARATOR ||
- containsKey(config.separatorKey)
- )
-
- if (canWrite()) {
- FileOutputStream(this).writer().use {
- store(it, "Generated by the Semver Plugin for Gradle")
- }
- } else {
- throw IOException("Can't write.")
- }
- }
- } catch (e: IOException) {
- throw GradleException("Unable to write version to: `${propsFile.absoluteFile}`", e)
- }
- }
- }
-}
diff --git a/src/main/kotlin/net/thauvin/erik/gradle/semver/Version.kt b/src/main/kotlin/net/thauvin/erik/gradle/semver/Version.kt
index eedbf38..e752c04 100644
--- a/src/main/kotlin/net/thauvin/erik/gradle/semver/Version.kt
+++ b/src/main/kotlin/net/thauvin/erik/gradle/semver/Version.kt
@@ -1,7 +1,7 @@
/*
* Version.kt
*
- * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
+ * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,14 +29,13 @@
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
package net.thauvin.erik.gradle.semver
class Version {
companion object {
- const val DEFAULT_MAJOR: Int = 1
- const val DEFAULT_MINOR: Int = 0
- const val DEFAULT_PATCH: Int = 0
+ const val DEFAULT_MAJOR: String = "1"
+ const val DEFAULT_MINOR: String = "0"
+ const val DEFAULT_PATCH: String = "0"
const val DEFAULT_EMPTY: String = ""
const val DEFAULT_PRERELEASE_PREFIX = "-"
const val DEFAULT_BUILDMETA_PREFIX = "+"
@@ -59,27 +58,14 @@ class Version {
fun increment(isMajor: Boolean = false, isMinor: Boolean = false, isPatch: Boolean = false) {
if (isMajor) {
- major++
+ major = (major.toInt() + 1).toString()
minor = DEFAULT_MINOR
patch = DEFAULT_PATCH
}
if (isMinor) {
- minor++
+ minor = (minor.toInt() + 1).toString()
patch = DEFAULT_PATCH
}
- if (isPatch) patch++
- }
-
- override fun toString(): String {
- return "Version(" +
- "major='$major', " +
- "minor='$minor', " +
- "patch='$patch', " +
- "preRelease='$preRelease', " +
- "preReleasePrefix='$preReleasePrefix', " +
- "buildMeta='$buildMeta', " +
- "buildMetaPrefix='$buildMetaPrefix', " +
- "separator='$separator', " +
- ')'
+ if (isPatch) patch = (patch.toInt() + 1).toString()
}
}
diff --git a/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverConfigSpec.kt b/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverConfigSpec.kt
index 45105a0..93ff83d 100644
--- a/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverConfigSpec.kt
+++ b/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverConfigSpec.kt
@@ -1,7 +1,7 @@
/*
* SemverConfigSpec.kt
*
- * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
+ * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,21 +29,21 @@
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
package net.thauvin.erik.gradle.semver
-import org.spekframework.spek2.Spek
-import org.spekframework.spek2.style.gherkin.Feature
-import kotlin.test.assertEquals
+import org.jetbrains.spek.api.Spek
+import org.jetbrains.spek.api.dsl.describe
+import org.jetbrains.spek.api.dsl.given
+import org.jetbrains.spek.api.dsl.it
+import org.jetbrains.spek.api.dsl.on
import kotlin.test.assertTrue
@Suppress("unused")
object SemverConfigSpec : Spek({
- Feature("SemverConfig") {
- val config = SemverConfig(Version())
- Scenario("Testing configs") {
+ describe("config test") {
+ given("a config") {
+ val config = SemverConfig()
val vars = listOf(
- config.semverKey,
config.majorKey,
config.minorKey,
config.patchKey,
@@ -54,7 +54,6 @@ object SemverConfigSpec : Spek({
config.separatorKey
)
val defaults = listOf(
- SemverConfig.DEFAULT_SEMVER_KEY,
SemverConfig.DEFAULT_MAJOR_KEY,
SemverConfig.DEFAULT_MINOR_KEY,
SemverConfig.DEFAULT_PATCH_KEY,
@@ -64,25 +63,19 @@ object SemverConfigSpec : Spek({
SemverConfig.DEFAULT_BUILDMETA_PREFIX_KEY,
SemverConfig.DEFAULT_SEPARATOR
)
-
- When("checking defaults") {}
-
- defaults.forEachIndexed { i, d ->
- Then(" ${vars[i]} should be the same: ${config.keysPrefix}$d") {
- assertEquals(vars[i], "${config.keysPrefix}$d")
+ on("defaults") {
+ defaults.forEachIndexed { i, d ->
+ it("should be the same: ${vars[i]}, ${config.keysPrefix}$d") {
+ assertTrue(vars[i] == "${config.keysPrefix}$d")
+ }
}
}
-
- Then("config.properties should be version.properties") {
- assertEquals(config.properties, "version.properties")
+ on("should be version.properties") {
+ assertTrue(config.properties == "version.properties")
}
-
- lateinit var newKeys: List
-
- When("setting keyPrefix to test.") {
+ on("set keys to test.xxx") {
config.keysPrefix = "test."
- newKeys = listOf(
- config.semverKey,
+ val keys = listOf(
config.majorKey,
config.minorKey,
config.patchKey,
@@ -90,35 +83,14 @@ object SemverConfigSpec : Spek({
config.preReleasePrefixKey,
config.buildMetaKey,
config.buildMetaPrefixKey,
- config.separatorKey
- )
- }
+ config.separatorKey)
- Then("all config keys should start with test.xxxx") {
- newKeys.forEach { k ->
- assertTrue(k.startsWith("test."), k)
+ keys.forEach { k ->
+ it("should all start with test.xxx: $k") {
+ assertTrue(k.startsWith("test."))
+ }
}
}
-
- When("checking extension properties") {}
-
- Then("semver should be defaults") {
- val defaultSemver =
- "${Version.DEFAULT_MAJOR}${Version.DEFAULT_SEPARATOR}${Version.DEFAULT_MINOR}${Version.DEFAULT_SEPARATOR}${Version.DEFAULT_PATCH}"
- assertEquals(config.semver, defaultSemver)
- assertEquals(
- "${config.major}${config.separator}${config.minor}${config.separator}${config.patch}",
- defaultSemver
- )
- assertEquals(config.preRelease, Version.DEFAULT_EMPTY)
- assertEquals(config.buildMeta, Version.DEFAULT_EMPTY)
- assertEquals(config.preReleasePrefix, Version.DEFAULT_PRERELEASE_PREFIX)
- assertEquals(config.buildMetaPrefix, Version.DEFAULT_BUILDMETA_PREFIX)
- }
-
- Then("semver = version") {
- assertEquals(config.semver, config.version)
- }
}
}
})
diff --git a/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverVersionSpec.kt b/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverVersionSpec.kt
index 3dc5f1e..9d5162b 100644
--- a/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverVersionSpec.kt
+++ b/src/test/kotlin/net/thauvin/erik/gradle/semver/SemverVersionSpec.kt
@@ -1,7 +1,7 @@
/*
* SemverVersionSpec.kt
*
- * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
+ * Copyright (c) 2018, Erik C. Thauvin (erik@thauvin.net)
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -29,174 +29,93 @@
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
package net.thauvin.erik.gradle.semver
-import org.spekframework.spek2.Spek
-import org.spekframework.spek2.style.gherkin.Feature
+import org.jetbrains.spek.api.Spek
+import org.jetbrains.spek.api.dsl.describe
+import org.jetbrains.spek.api.dsl.given
+import org.jetbrains.spek.api.dsl.it
+import org.jetbrains.spek.api.dsl.on
import kotlin.test.assertEquals
@Suppress("unused")
object SemverVersionSpec : Spek({
- Feature("SemverVersion") {
- val version = Version()
- Scenario("Testing Versions") {
- When("validating default version") {}
-
- Then("major should be 1") {
- assertEquals(1, version.major)
- }
-
- Then("minor should be 1") {
- assertEquals(0, version.minor)
- }
-
- Then("patch should be 0") {
- assertEquals(0, version.patch)
- }
-
- Then("prerelease should be empty") {
- assertEquals("", version.preRelease)
- }
-
- Then("meta should be empty") {
- assertEquals("", version.buildMeta)
- }
-
- Then("preRelease prefix should be -") {
- assertEquals("-", version.preReleasePrefix)
- }
-
- Then("meta prefix should be +") {
- assertEquals("+", version.buildMetaPrefix)
- }
-
- Then("separator should be .") {
- assertEquals(".", version.separator)
- }
-
- Then("version should be 1.0.0") {
- assertEquals("1.0.0", version.semver)
- }
-
- When("incrementing major") {
+ describe("version test") {
+ given("a version") {
+ val version = Version()
+ on("increment major") {
version.increment(isMajor = true)
+ it("should return 2.0.0") {
+ assertEquals("2.0.0", version.semver)
+ }
}
-
- Then("should return 2.0.0") {
- assertEquals("2.0.0", version.semver)
- }
-
- When("incrementing minor") {
+ on("increment minor") {
version.increment(isMinor = true)
+ it("should return 2.1.0") {
+ assertEquals("2.1.0", version.semver)
+ }
}
-
- Then("should return 2.1.0") {
- assertEquals("2.1.0", version.semver)
- }
-
- When("incrementing patch") {
+ on("increment patch") {
version.increment(isPatch = true)
+ it("should return 2.1.1") {
+ assertEquals("2.1.1", version.semver)
+ }
}
-
- Then("should return 2.1.1") {
- assertEquals("2.1.1", version.semver)
- }
-
- When("incrementing minor again") {
+ on("increment patch") {
version.increment(isMinor = true)
+ it("should return 2.1.0") {
+ assertEquals("2.1.0", version.semver)
+ }
}
-
- Then("should return 2.2.0") {
- assertEquals("2.2.0", version.semver)
- }
-
- When("incrementing major again") {
+ on("increment patch") {
version.increment(isMajor = true)
+ it("should return 3.0.0") {
+ assertEquals("3.0.0", version.semver)
+ }
}
-
- Then("should return 3.0.0") {
- assertEquals("3.0.0", version.semver)
+ on("increment all") {
+ version.increment(true, true, true)
+ it("should return 3.1.1") {
+ assertEquals("3.1.1", version.semver)
+ }
}
-
- When("incrementing all") {
- version.increment(isMajor = true, isMinor = true, isPatch = true)
+ on("reset version") {
+ version.major = "1"
+ version.minor = "0"
+ version.patch = "0"
+ it("should return 1.0.0") {
+ assertEquals("1.0.0", version.semver)
+ }
}
-
- Then("should return 4.1.1") {
- assertEquals("4.1.1", version.semver)
- }
-
- When("incrementing major and minor") {
- version.increment(isMajor = true, isMinor = true)
- }
-
- Then("should return 5.1.0") {
- assertEquals("5.1.0", version.semver)
- }
-
- When("incrementing minor and patch") {
- version.increment(isMinor = true, isPatch = true)
- }
- Then("should return 5.2.1") {
- assertEquals("5.2.1", version.semver)
- }
-
- When("incrementing nothing") {
- version.increment()
- }
- Then("should still return 5.2.1") {
- assertEquals("5.2.1", version.semver)
- }
-
- When("resetting version") {
- version.major = 1
- version.minor = 0
- version.patch = 0
- }
-
- Then("should return 1.0.0") {
- assertEquals("1.0.0", version.semver)
- }
-
- When("adding prerelease") {
+ on("add prerelease") {
version.preRelease = "beta"
+ it("should return 1.0.0-beta") {
+ assertEquals("1.0.0-beta", version.semver)
+ }
}
-
- Then("should return 1.0.0-beta") {
- assertEquals("1.0.0-beta", version.semver)
- }
-
- When("adding metadata") {
+ on("add metadata") {
version.buildMeta = "007"
+ it("should return 1.0.0-beta+007") {
+ assertEquals("1.0.0-beta+007", version.semver)
+ }
}
-
- Then("should return 1.0.0-beta+007") {
- assertEquals("1.0.0-beta+007", version.semver)
- }
-
- When("changing prerelease prefix") {
+ on("change prerelease prefix") {
version.preReleasePrefix = "--"
+ it("should return 1.0.0--beta+007") {
+ assertEquals("1.0.0--beta+007", version.semver)
+ }
}
-
- Then("should return 1.0.0--beta+007") {
- assertEquals("1.0.0--beta+007", version.semver)
- }
-
- When("changing meta prefix") {
+ on("change prerelease prefix") {
version.buildMetaPrefix = "++"
+ it("should return 1.0.0--beta+=007") {
+ assertEquals("1.0.0--beta++007", version.semver)
+ }
}
-
- Then("should return 1.0.0--beta++007") {
- assertEquals("1.0.0--beta++007", version.semver)
- }
-
- When("changing separator") {
+ on("change sperator") {
version.separator = "-"
- }
-
- Then("should return 1-0-0--beta++007") {
- assertEquals("1-0-0--beta++007", version.semver)
+ it("should return 1-0-0--beta+007") {
+ assertEquals("1-0-0--beta+007", version.semver)
+ }
}
}
}
diff --git a/src/test/kotlin/net/thauvin/erik/gradle/semver/UtilsSpec.kt b/src/test/kotlin/net/thauvin/erik/gradle/semver/UtilsSpec.kt
deleted file mode 100644
index 3ad050f..0000000
--- a/src/test/kotlin/net/thauvin/erik/gradle/semver/UtilsSpec.kt
+++ /dev/null
@@ -1,269 +0,0 @@
-/*
- * UtilsSpec.kt
- *
- * Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- *
- * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- *
- * Neither the name of this project nor the names of its contributors may be
- * used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-package net.thauvin.erik.gradle.semver
-
-import net.thauvin.erik.gradle.semver.Utils.canReadFile
-import org.gradle.api.GradleException
-import org.spekframework.spek2.Spek
-import org.spekframework.spek2.style.gherkin.Feature
-import java.io.File
-import java.util.*
-import kotlin.test.assertEquals
-import kotlin.test.assertFailsWith
-import kotlin.test.assertNull
-import kotlin.test.assertTrue
-
-@Suppress("unused")
-object UtilsSpec : Spek(
- {
- Feature("Utils") {
- val version = Version()
- val config = SemverConfig(version)
- val propsFile = File("test.properties")
- val projectDir = File("./")
- lateinit var props: Properties
-
- Scenario("Save/Load Properties") {
- When("saving the property") {
- config.properties = propsFile.name
- Utils.saveProperties(projectDir, config, version)
- }
-
- Then("properties file should exists and be readable") {
- assertEquals(propsFile.canReadFile(), propsFile.canRead() && propsFile.isFile)
- }
-
- When("loading the properties file") {
- props = Utils.loadProperties(propsFile)
- propsFile.delete()
- }
-
- Then("version and properties should be the same.") {
- assertEquals(props.getProperty(config.majorKey), version.major.toString(), "Major")
- assertEquals(props.getProperty(config.minorKey), version.minor.toString(), "Minor")
- assertEquals(props.getProperty(config.patchKey), version.patch.toString(), "Patch")
- assertEquals(props.getProperty(config.preReleaseKey), version.preRelease, "PreRelease")
- assertNull(props.getProperty(config.preReleasePrefixKey), "PreRelease Prefix")
- assertEquals(props.getProperty(config.buildMetaKey), version.buildMeta, "Build Meta")
- assertNull(props.getProperty(config.buildMetaPrefixKey), "Build Meta Prefix")
- assertNull(props.getProperty(config.separatorKey), "Separator")
- assertEquals(props.getProperty(config.semverKey), version.semver, "semver")
- }
- }
-
- Scenario("System Properties") {
- lateinit var sysProps: Array>
-
- Given("new system properties") {
- sysProps = arrayOf(
- Pair(config.majorKey, "2"),
- Pair(config.minorKey, "1"),
- Pair(config.patchKey, "1"),
- Pair(config.preReleaseKey, "beta"),
- Pair(config.buildMetaKey, "007")
- )
- }
-
- Then("none should already exists") {
- assertTrue(
- Utils.isNotSystemProperty(
- setOf(
- config.majorKey,
- config.minorKey,
- config.patchKey,
- config.preReleaseKey,
- config.buildMetaKey
- )
- )
- )
- }
-
- Then("version should match system properties") {
- sysProps.forEach {
- System.getProperties().setProperty(it.first, it.second)
- if (it.first == config.majorKey || it.first == config.minorKey || it.first == config.patchKey) {
- assertEquals(Utils.loadIntProperty(props, it.first, -1), it.second.toInt())
- } else {
- assertEquals(Utils.loadProperty(props, it.first, ""), it.second)
- }
- }
- }
-
- When("loading version") {
- Utils.loadVersion(config, version, props)
- }
-
- Then("version should be identical") {
- assertEquals(version.semver, "2.1.1-beta+007")
- }
-
- When("saving properties") {
- Utils.saveProperties(projectDir, config, version)
- }
-
- lateinit var newProps: Properties
-
- And("loading properties file") {
- newProps = Utils.loadProperties(propsFile)
- }
-
- Then("new properties should validate") {
- sysProps.forEach {
- assertEquals(newProps.getProperty(it.first), it.second, it.second)
- }
- propsFile.delete()
- }
-
- When("setting the version as system property") {
- System.getProperties().setProperty(config.semverKey, "3.2.2")
- }
-
- And("loading the properties") {
- Utils.loadVersion(config, version, props)
- }
-
- Then("versions should match") {
- assertEquals(version.semver, System.getProperty(config.semverKey))
- }
- }
-
- Scenario("Version Parsing") {
- When("validating version parsing") {}
-
- Then("versions should parse") {
- listOf(
- "1.0.0",
- "2.1.0-beta",
- "3.2.1-beta+007",
- "4.3.2+007",
- "11.11.1",
- "111.11.11-beta",
- "1111.111.11-beta+001.12"
- ).forEach {
- assertTrue(Utils.parseSemVer(it, version), "parsing semver: $it")
- assertEquals(it, version.semver, it)
- }
- }
-
- Then("should throw exceptions") {
- assertFailsWith("2.1.1a") {
- Utils.parseSemVer("2.1.1a", version)
- }
- assertFailsWith("2a.1.1") {
- Utils.parseSemVer("2a.1.1", version)
- }
- assertFailsWith("2.1a.1") {
- Utils.parseSemVer("2.1a.1", version)
- }
- assertFailsWith("2.1") {
- Utils.parseSemVer("2.1", version)
- }
- }
-
- Given("new prefixes") {
- version.preReleasePrefix = "."
- version.buildMetaPrefix = "."
- }
-
- Then("prefixes should parse") {
- listOf("2.1.0.beta.1", "2.1.1.1", "3.2.1.beta.1.007").forEach {
- assertTrue(Utils.parseSemVer(it, version), "parsing semver: $it")
- assertEquals(it, version.semver, it)
- }
- }
-
- Then("last pre-release and meta should match") {
- assertEquals(version.preRelease, "beta")
- assertEquals(version.buildMeta, "1.007")
- }
- }
-
- Scenario("Load locked properties") {
- lateinit var locked: File
-
- Given("the locked location") {
- locked = File("locked")
- }
-
- Then("loading locked properties") {
- assertFailsWith {
- Utils.loadProperties(File(locked, propsFile.name))
- }
- locked.delete()
- }
- }
-
- Scenario("Save to locked properties") {
- lateinit var propsLocked: File
- Given("the locked properties") {
- propsLocked = File(System.getProperty("user.home") + File.separator + "locked.properties")
- propsLocked.createNewFile()
- propsLocked.setReadOnly()
- config.properties = propsLocked.name
- }
-
- Then("saving the locked properties file") {
- assertFailsWith {
- Utils.saveProperties(propsLocked.parentFile, config, version)
- }
- propsLocked.delete()
- }
- }
-
- Scenario("Save/Load Properties in foo") {
- lateinit var fooDir: File
- lateinit var fooProps: File
- When("saving the foo property") {
- fooDir = File("foo")
- fooDir.mkdir()
- fooProps = File(fooDir, propsFile.name)
- config.properties = fooProps.absolutePath
- Utils.saveProperties(projectDir, config, version)
- }
-
- Then("foo properties file should exists and be readable") {
- assertEquals(fooProps.canReadFile(), fooProps.canRead() && fooProps.isFile)
- }
-
- When("loading the foo properties file") {
- props = Utils.loadProperties(fooProps)
- fooProps.delete()
- fooDir.delete()
- }
-
- Then("version in foo properties should be the same") {
- assertEquals(props.getProperty(config.semverKey), version.semver)
- }
- }
- }
- }
-)
diff --git a/updatewrappers.sh b/updatewrappers.sh
deleted file mode 100644
index e98cca5..0000000
--- a/updatewrappers.sh
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/bash
-
-
-#
-# Version: 1.0.2
-#
-
-# set the examples directories
-declare -a dirs=(
- "${PWD##*/}"
- "examples/java"
- "examples/kotlin"
- "examples/annotation-processor/java"
- "examples/annotation-processor/kotlin")
-java8=true
-
-###
-
-pwd=$PWD
-cyan=$(tput setaf 6)
-green=$(tput setaf 2)
-red=$(tput setaf 1)
-std=$(tput sgr0)
-
-if [ "$java8" = true ]
-then
- export JAVA_HOME="$JAVA8_HOME"
- export PATH="$(cygpath "$JAVA_HOME")/bin:$PATH"
-fi
-
-kVer=$(kobaltw --version | awk '{print substr($2, 1, length($2)-1)}')
-updateWrappers() {
- curVer="$(gradle --version | awk '/Gradle/ {print $2}')"
- if [ -d gradle ]; then
- if [ "$curVer" != "$(./gradlew --version | awk '/Gradle/ {print $2}')" ]; then
- gradle -q --console=plain wrapper
- echo -e " $(./gradlew --version | awk '/Gradle/') ${green}UPDATED${std}"
- else
- echo -e " Gradle $curVer UP-TO-DATE"
- fi
- fi
- if [ -d kobalt ]; then
- kw=$(cut -d "=" -f 2 kobalt/wrapper/kobalt-wrapper.properties)
- if [ "$kw" = "$kVer" ]
- then
- echo -e " Kobalt $kw UP-TO-DATE"
- else
- echo -e "kobalt.version=$kVer" > kobalt/wrapper/kobalt-wrapper.properties
- echo -e " Kobalt $kVer ${green}UPDATED${std}"
- fi
- fi
-}
-
-echo -e "Updating wrappers..."
-
-for d in "${!dirs[@]}"; do
- if [ "$d" -ne 0 ]; then
- cd "${dirs[d]}" || exit 1
- fi
- echo -e " ${cyan}${dirs[d]}${std}"
- updateWrappers
- cd "$pwd"
-done