Compare commits
17 commits
1.0.3-beta
...
master
Author | SHA1 | Date | |
---|---|---|---|
7440631325 | |||
65a38facda | |||
3e70a53714 | |||
afe6d3ebc9 | |||
34cedc21e6 | |||
e71f4f60ee | |||
68f42777af | |||
1f7861e314 | |||
765c07a85e | |||
bf51d1d826 | |||
9737f66f64 | |||
d17afba52e | |||
c32a7ebdec | |||
062758a5f0 | |||
860d985059 | |||
c678bb7889 | |||
c16f95a8d3 |
59 changed files with 652 additions and 507 deletions
|
@ -1,3 +1,4 @@
|
|||
version: 2
|
||||
defaults: &defaults
|
||||
working_directory: ~/repo
|
||||
docker:
|
||||
|
@ -7,8 +8,6 @@ defaults: &defaults
|
|||
TERM: dumb
|
||||
CI: true
|
||||
|
||||
version: 2.0
|
||||
|
||||
jobs:
|
||||
build_gradle:
|
||||
<<: *defaults
|
||||
|
|
19
.github/workflows/gradle.yml
vendored
Normal file
19
.github/workflows/gradle.yml
vendored
Normal file
|
@ -0,0 +1,19 @@
|
|||
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
|
52
.gitignore
vendored
52
.gitignore
vendored
|
@ -1,32 +1,14 @@
|
|||
.vscode/*
|
||||
!.vscode/extensions.json
|
||||
!.vscode/launch.json
|
||||
!.vscode/settings.json
|
||||
!.vscode/tasks.json
|
||||
!gradle-wrapper.jar
|
||||
|
||||
__pycache__
|
||||
.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
|
||||
|
@ -35,20 +17,39 @@
|
|||
.project
|
||||
.scannerwork
|
||||
.settings
|
||||
.vscode/*
|
||||
*.class
|
||||
*.code-workspace
|
||||
*.ctxt
|
||||
*.ear
|
||||
*.iws
|
||||
*.jar
|
||||
*.log
|
||||
*.nar
|
||||
*.rar
|
||||
*.sublime-*
|
||||
*.tar.gz
|
||||
*.war
|
||||
*.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/
|
||||
|
@ -80,3 +81,4 @@ release.properties
|
|||
target/
|
||||
test-output
|
||||
Thumbs.db
|
||||
venv
|
||||
|
|
31
.gitlab-ci.yml
Normal file
31
.gitlab-ci.yml
Normal file
|
@ -0,0 +1,31 @@
|
|||
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
|
1
.idea/copyright/Erik_s_Copyright_Notice.xml
generated
1
.idea/copyright/Erik_s_Copyright_Notice.xml
generated
|
@ -1,5 +1,6 @@
|
|||
<component name="CopyrightManager">
|
||||
<copyright>
|
||||
<option name="allowReplaceRegexp" value="Copyright" />
|
||||
<option name="notice" value="&#36;file.fileName Copyright (c) 2018-&#36;today.year, 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." />
|
||||
<option name="myName" value="Erik's Copyright Notice" />
|
||||
</copyright>
|
||||
|
|
30
.idea/jarRepositories.xml
generated
Normal file
30
.idea/jarRepositories.xml
generated
Normal file
|
@ -0,0 +1,30 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="RemoteRepositoriesConfiguration">
|
||||
<remote-repository>
|
||||
<option name="id" value="central" />
|
||||
<option name="name" value="Maven Central repository" />
|
||||
<option name="url" value="https://repo1.maven.org/maven2" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="jboss.community" />
|
||||
<option name="name" value="JBoss Community repository" />
|
||||
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="MavenLocal" />
|
||||
<option name="name" value="MavenLocal" />
|
||||
<option name="url" value="file:/$MAVEN_REPOSITORY$/" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="BintrayJCenter" />
|
||||
<option name="name" value="BintrayJCenter" />
|
||||
<option name="url" value="https://jcenter.bintray.com/" />
|
||||
</remote-repository>
|
||||
<remote-repository>
|
||||
<option name="id" value="MavenLocal" />
|
||||
<option name="name" value="MavenLocal" />
|
||||
<option name="url" value="file:$MAVEN_REPOSITORY$/" />
|
||||
</remote-repository>
|
||||
</component>
|
||||
</project>
|
9
.idea/misc.xml
generated
9
.idea/misc.xml
generated
|
@ -1,6 +1,15 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||
<component name="FrameworkDetectionExcludesConfiguration">
|
||||
<file type="web" url="file://$PROJECT_DIR$/examples/annotation-processor/java" />
|
||||
<file type="web" url="file://$PROJECT_DIR$/examples/annotation-processor/kotlin" />
|
||||
<file type="web" url="file://$PROJECT_DIR$/examples/java" />
|
||||
<file type="web" url="file://$PROJECT_DIR$/examples/kotlin" />
|
||||
</component>
|
||||
<component name="JavaScriptSettings">
|
||||
<option name="languageLevel" value="ES6" />
|
||||
</component>
|
||||
<component name="NodePackageJsonFileManager">
|
||||
<packageJsonPaths />
|
||||
</component>
|
||||
|
|
8
.idea/modules.xml
generated
Normal file
8
.idea/modules.xml
generated
Normal file
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/semver-gradle.iml" filepath="$PROJECT_DIR$/.idea/semver-gradle.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
2
.idea/scopes/Copyright.xml
generated
2
.idea/scopes/Copyright.xml
generated
|
@ -1,3 +1,3 @@
|
|||
<component name="DependencyValidationManager">
|
||||
<scope name="Copyright" pattern="file[semver.main]:*.kt/||file[semver.test]:*.kt/" />
|
||||
<scope name="Copyright" pattern="file[semver-gradle]:src/main/kotlin/net/thauvin/erik/gradle/semver//*||file[semver-gradle]:src/test/kotlin/net/thauvin/erik/gradle/semver//*||file[examples-kotlin.main]:*/||file[examples-kotlin.test]:*/||file[examples-java.main]:*/||file[examples-java.test]:*/||file[ap-examples-kotlin.main]:*/||file[ap-examples-java.main]:*/" />
|
||||
</component>
|
10
.travis.yml
10
.travis.yml
|
@ -1,10 +1,6 @@
|
|||
language: java
|
||||
dist: trusty
|
||||
|
||||
env:
|
||||
global:
|
||||
- CI=true
|
||||
|
||||
jdk:
|
||||
- oraclejdk8
|
||||
|
||||
|
@ -29,6 +25,6 @@ cache:
|
|||
|
||||
after_success:
|
||||
- |
|
||||
if [ "${TRAVIS_TEST_RESULT}" == 0 ]; then
|
||||
./gradlew sonarqube
|
||||
fi
|
||||
if [ "${TRAVIS_TEST_RESULT}" == 0 ]; then
|
||||
./gradlew sonarqube
|
||||
fi
|
||||
|
|
14
CHANGELOG.md
14
CHANGELOG.md
|
@ -1,5 +1,19 @@
|
|||
# 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)
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
Copyright (c) 2018-2019, Erik C. Thauvin (erik@thauvin.net)
|
||||
Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
|
|
29
README.md
29
README.md
|
@ -1,4 +1,4 @@
|
|||
[](http://opensource.org/licenses/BSD-3-Clause) [](https://sonarcloud.io/dashboard?id=ethauvin_semver-gradle) [](https://travis-ci.org/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://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)
|
||||
|
||||
# Semantic Version Plugin for Gradle
|
||||
|
||||
|
@ -250,7 +250,9 @@ The values stored in the version properties file can individually be accessed us
|
|||
|
||||
```gradle
|
||||
fooTask {
|
||||
println "Build: $semver.buildMeta"
|
||||
doFirst {
|
||||
println "Build: $semver.buildMeta"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -269,6 +271,29 @@ Property | Description
|
|||
`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
|
||||
|
||||
|
|
9
bitbucket-pipelines.yml
Normal file
9
bitbucket-pipelines.yml
Normal file
|
@ -0,0 +1,9 @@
|
|||
image: openjdk:8
|
||||
|
||||
pipelines:
|
||||
default:
|
||||
- step:
|
||||
caches:
|
||||
- gradle
|
||||
script:
|
||||
- bash ./gradlew check
|
|
@ -2,28 +2,26 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
|||
|
||||
plugins {
|
||||
`java-gradle-plugin`
|
||||
`kotlin-dsl`
|
||||
`maven-publish`
|
||||
jacoco
|
||||
id("com.github.ben-manes.versions") version "0.21.0"
|
||||
id("com.gradle.build-scan") version "2.3"
|
||||
id("com.gradle.plugin-publish") version "0.10.1"
|
||||
id("io.gitlab.arturbosch.detekt") version "1.0.0-RC14" // don't update until kotlin 1.3.401 is supported by Gradle
|
||||
id("org.jmailen.kotlinter") version "1.26.0" // don't update until kotlin 1.3.41 supported by Gradle
|
||||
id("org.sonarqube") version "2.7.1"
|
||||
kotlin("jvm") version "1.3.31"
|
||||
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"
|
||||
}
|
||||
|
||||
version = "1.0.3-beta"
|
||||
version = "1.0.5-beta"
|
||||
group = "net.thauvin.erik.gradle"
|
||||
|
||||
var github = "https://github.com/ethauvin/semver-gradle"
|
||||
var packageName = "net.thauvin.erik.gradle.semver"
|
||||
|
||||
object Versions {
|
||||
const val kotlin = "1.3.31"
|
||||
const val spek = "2.0.5"
|
||||
object VersionInfo {
|
||||
const val spek = "2.0.13"
|
||||
}
|
||||
val versions: VersionInfo by extra { VersionInfo }
|
||||
|
||||
val github = "https://github.com/ethauvin/semver-gradle"
|
||||
val packageName = "net.thauvin.erik.gradle.semver"
|
||||
|
||||
repositories {
|
||||
jcenter()
|
||||
|
@ -32,13 +30,15 @@ repositories {
|
|||
dependencies {
|
||||
implementation(gradleApi())
|
||||
|
||||
testImplementation(kotlin("reflect", version = Versions.kotlin))
|
||||
testImplementation(kotlin("test", version = Versions.kotlin))
|
||||
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}")
|
||||
implementation(kotlin("stdlib-jdk8", version = Versions.kotlin))
|
||||
testImplementation("org.spekframework.spek2:spek-dsl-jvm:${versions.spek}")
|
||||
testRuntimeOnly("org.spekframework.spek2:spek-runner-junit5:${versions.spek}")
|
||||
}
|
||||
|
||||
tasks {
|
||||
|
@ -66,29 +66,12 @@ tasks {
|
|||
}
|
||||
}
|
||||
|
||||
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"
|
||||
}
|
||||
|
||||
detekt {
|
||||
input = files("src/main/kotlin", "src/test/kotlin")
|
||||
filters = ".*/resources/.*,.*/build/.*"
|
||||
// input = files("src/main/kotlin", "src/test/kotlin")
|
||||
// filters = ".*/resources/.*,.*/build/.*"
|
||||
baseline = project.rootDir.resolve("detekt-baseline.xml")
|
||||
}
|
||||
|
||||
kotlinter {
|
||||
ignoreFailures = false
|
||||
reporters = arrayOf("html")
|
||||
experimentalRules = false
|
||||
//disabledRules = arrayOf("import-ordering")
|
||||
}
|
||||
|
||||
sonarqube {
|
||||
properties {
|
||||
property("sonar.projectName", "semver-gradle")
|
||||
|
@ -117,11 +100,3 @@ pluginBundle {
|
|||
artifactId = project.name
|
||||
}
|
||||
}
|
||||
val compileKotlin: KotlinCompile by tasks
|
||||
compileKotlin.kotlinOptions {
|
||||
jvmTarget = "1.8"
|
||||
}
|
||||
val compileTestKotlin: KotlinCompile by tasks
|
||||
compileTestKotlin.kotlinOptions {
|
||||
jvmTarget = "1.8"
|
||||
}
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
<?xml version="1.0" ?>
|
||||
<SmellBaseline>
|
||||
<Blacklist timestamp="1555043579716"></Blacklist>
|
||||
<Whitelist timestamp="1555043579714">
|
||||
<ID>ComplexMethod:Utils.kt$Utils$fun loadProperties(file: File): Properties</ID>
|
||||
<ManuallySuppressedIssues></ManuallySuppressedIssues>
|
||||
<CurrentIssues>
|
||||
<ID>MagicNumber:Utils.kt$Utils$3</ID>
|
||||
<ID>MagicNumber:Utils.kt$Utils$4</ID>
|
||||
<ID>MaxLineLength:SemverPlugin.kt$net.thauvin.erik.gradle.semver.SemverPlugin.kt</ID>
|
||||
<ID>MagicNumber:Utils.kt$Utils$5</ID>
|
||||
<ID>NestedBlockDepth:Utils.kt$Utils$fun loadProperties(file: File): Properties</ID>
|
||||
<ID>NestedBlockDepth:Utils.kt$Utils$fun parseSemVer(input: String, version: Version): String</ID>
|
||||
<ID>NestedBlockDepth:Utils.kt$Utils$fun saveProperties(config: SemverConfig, version: Version)</ID>
|
||||
</Whitelist>
|
||||
</SmellBaseline>
|
||||
<ID>NestedBlockDepth:Utils.kt$Utils$fun parseSemVer(input: String?, version: Version): Boolean</ID>
|
||||
<ID>NestedBlockDepth:Utils.kt$Utils$fun saveProperties(projectDir: File, config: SemverConfig, version: Version)</ID>
|
||||
</CurrentIssues>
|
||||
</SmellBaseline>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
plugins {
|
||||
id 'java'
|
||||
id 'application'
|
||||
id 'net.thauvin.erik.gradle.semver' version '1.0.2'
|
||||
id 'com.github.ben-manes.versions' version '0.21.0'
|
||||
id 'net.thauvin.erik.gradle.semver' version '1.0.4'
|
||||
id 'com.github.ben-manes.versions' version '0.28.0'
|
||||
}
|
||||
|
||||
// ./gradlew
|
||||
|
@ -14,8 +14,6 @@ mainClassName = 'com.example.Example'
|
|||
|
||||
defaultTasks 'run'
|
||||
|
||||
compileJava.options.annotationProcessorGeneratedSourcesDirectory = file("${projectDir}/src/generated/java")
|
||||
|
||||
def semverProcessor = "net.thauvin.erik:semver:1.2.0"
|
||||
|
||||
dependencies {
|
||||
|
@ -23,9 +21,9 @@ dependencies {
|
|||
implementation semverProcessor
|
||||
}
|
||||
|
||||
// For Java 12+
|
||||
tasks.withType(JavaCompile) {
|
||||
options.compilerArgs += [ "-Asemver.project.dir=$projectDir" ]
|
||||
options.annotationProcessorGeneratedSourcesDirectory = file("${projectDir}/src/generated/java")
|
||||
options.compilerArgs += [ "-Asemver.project.dir=$projectDir" ]
|
||||
}
|
||||
|
||||
repositories {
|
||||
|
|
Binary file not shown.
|
@ -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-6.2.2-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
|
33
examples/annotation-processor/java/gradlew
vendored
33
examples/annotation-processor/java/gradlew
vendored
|
@ -125,8 +125,8 @@ if $darwin; then
|
|||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
|
@ -154,19 +154,19 @@ if $cygwin ; then
|
|||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=$((i+1))
|
||||
i=`expr $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,14 +175,9 @@ 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" "$@"
|
||||
|
|
|
@ -29,6 +29,9 @@ 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"
|
||||
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
plugins {
|
||||
kotlin("jvm").version("1.3.41")
|
||||
kotlin("jvm").version("1.3.61")
|
||||
application
|
||||
id("org.jetbrains.kotlin.kapt").version("1.3.41")
|
||||
id("net.thauvin.erik.gradle.semver").version("1.0.2")
|
||||
id("com.github.ben-manes.versions").version("0.21.0")
|
||||
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")
|
||||
}
|
||||
|
||||
// ./gradlew
|
||||
|
|
Binary file not shown.
|
@ -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-6.2.2-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
|
33
examples/annotation-processor/kotlin/gradlew
vendored
33
examples/annotation-processor/kotlin/gradlew
vendored
|
@ -125,8 +125,8 @@ if $darwin; then
|
|||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
|
@ -154,19 +154,19 @@ if $cygwin ; then
|
|||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=$((i+1))
|
||||
i=`expr $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,14 +175,9 @@ 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" "$@"
|
||||
|
|
|
@ -29,6 +29,9 @@ 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"
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
plugins {
|
||||
id 'java'
|
||||
id 'application'
|
||||
id 'net.thauvin.erik.gradle.semver' version '1.0.2'
|
||||
id 'com.github.ben-manes.versions' version '0.21.0'
|
||||
id 'net.thauvin.erik.gradle.semver' version '1.0.4'
|
||||
id 'com.github.ben-manes.versions' version '0.36.0'
|
||||
}
|
||||
|
||||
// ./gradlew
|
||||
|
@ -10,14 +10,14 @@ 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.5.1'
|
||||
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.5.1'
|
||||
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.7.0'
|
||||
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.7.0'
|
||||
}
|
||||
|
||||
repositories {
|
||||
|
@ -28,6 +28,13 @@ test {
|
|||
useJUnitPlatform()
|
||||
}
|
||||
|
||||
application {
|
||||
mainClassName = 'App'
|
||||
// project.afterEvaluate {
|
||||
// println "Version: $version"
|
||||
// }
|
||||
}
|
||||
|
||||
semver {
|
||||
// properties = "example.properties"
|
||||
// keysPrefix = "example."
|
||||
|
@ -44,9 +51,14 @@ incrementBuildMeta {
|
|||
|
||||
run {
|
||||
doFirst {
|
||||
// println "Version: ${-> version}"
|
||||
println "Version: $version"
|
||||
}
|
||||
|
||||
// args = ['example.properties']
|
||||
args = ['version.properties']
|
||||
}
|
||||
|
||||
task echoVersion(type:Exec) {
|
||||
commandLine 'echo', "${-> project.version}"
|
||||
}
|
||||
|
|
BIN
examples/java/gradle/wrapper/gradle-wrapper.jar
vendored
BIN
examples/java/gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
|
@ -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-6.7-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
|
35
examples/java/gradlew
vendored
35
examples/java/gradlew
vendored
|
@ -82,6 +82,7 @@ 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
|
||||
|
@ -125,10 +126,11 @@ if $darwin; then
|
|||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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
|
||||
|
@ -154,19 +156,19 @@ if $cygwin ; then
|
|||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=$((i+1))
|
||||
i=`expr $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,14 +177,9 @@ 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" "$@"
|
||||
|
|
25
examples/java/gradlew.bat
vendored
25
examples/java/gradlew.bat
vendored
|
@ -29,6 +29,9 @@ 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"
|
||||
|
||||
|
@ -37,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
|
|||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
if "%ERRORLEVEL%" == "0" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
@ -51,7 +54,7 @@ goto fail
|
|||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
|
@ -61,28 +64,14 @@ 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 %CMD_LINE_ARGS%
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
|
|
|
@ -17,4 +17,4 @@ public class App {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,4 +9,4 @@ class AppTest {
|
|||
assertAll("app should have a main method.",
|
||||
() -> classUnderTest.getClass().getMethod("main", String[].class));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#Generated by the Semver Plugin for Gradle
|
||||
#Wed Jul 24 21:04:08 PDT 2019
|
||||
version.buildmeta=20190724210408
|
||||
#Fri Sep 25 17:38:33 PDT 2020
|
||||
version.buildmeta=20200925173833
|
||||
version.major=1
|
||||
version.minor=0
|
||||
version.patch=0
|
||||
version.prerelease=
|
||||
version.semver=1.0.0+20190724210408
|
||||
version.semver=1.0.0+20200925173833
|
||||
|
|
|
@ -4,10 +4,10 @@ import java.time.LocalDateTime
|
|||
import java.time.format.DateTimeFormatter
|
||||
|
||||
plugins {
|
||||
kotlin("jvm").version("1.3.41")
|
||||
kotlin("jvm").version("1.4.10")
|
||||
application
|
||||
id("net.thauvin.erik.gradle.semver").version("1.0.2")
|
||||
id("com.github.ben-manes.versions").version("0.21.0")
|
||||
id("net.thauvin.erik.gradle.semver").version("1.0.4")
|
||||
id("com.github.ben-manes.versions").version("0.36.0")
|
||||
}
|
||||
|
||||
// ./gradlew
|
||||
|
@ -20,7 +20,7 @@ defaultTasks(ApplicationPlugin.TASK_RUN_NAME)
|
|||
|
||||
dependencies {
|
||||
implementation(kotlin("stdlib"))
|
||||
testImplementation("org.testng:testng:6.14.3")
|
||||
testImplementation("org.testng:testng:7.3.0")
|
||||
}
|
||||
|
||||
repositories {
|
||||
|
@ -29,6 +29,9 @@ repositories {
|
|||
|
||||
application {
|
||||
mainClassName = "com.example.MainKt"
|
||||
// project.afterEvaluate {
|
||||
// println("Version: $version")
|
||||
// }
|
||||
}
|
||||
|
||||
semver {
|
||||
|
|
BIN
examples/kotlin/gradle/wrapper/gradle-wrapper.jar
vendored
BIN
examples/kotlin/gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
|
@ -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-6.7-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
|
35
examples/kotlin/gradlew
vendored
35
examples/kotlin/gradlew
vendored
|
@ -82,6 +82,7 @@ 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
|
||||
|
@ -125,10 +126,11 @@ if $darwin; then
|
|||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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
|
||||
|
@ -154,19 +156,19 @@ if $cygwin ; then
|
|||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=$((i+1))
|
||||
i=`expr $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,14 +177,9 @@ 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" "$@"
|
||||
|
|
25
examples/kotlin/gradlew.bat
vendored
25
examples/kotlin/gradlew.bat
vendored
|
@ -29,6 +29,9 @@ 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"
|
||||
|
||||
|
@ -37,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
|
|||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
if "%ERRORLEVEL%" == "0" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
@ -51,7 +54,7 @@ goto fail
|
|||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
|
@ -61,28 +64,14 @@ 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 %CMD_LINE_ARGS%
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
|
|
|
@ -13,4 +13,4 @@ fun main(args: Array<String>) {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,4 +5,4 @@ import org.testng.annotations.Test
|
|||
class ExampleTest {
|
||||
@Test
|
||||
fun f() = println("Running test")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#Generated by the Semver Plugin for Gradle
|
||||
#Wed Jul 24 21:05:40 PDT 2019
|
||||
version.buildmeta=20190724210540
|
||||
#Mon Nov 09 21:24:16 PST 2020
|
||||
version.buildmeta=20201109212416
|
||||
version.major=1
|
||||
version.minor=2
|
||||
version.patch=4
|
||||
version.prerelease=beta
|
||||
version.semver=1.2.4-beta+20190724210540
|
||||
version.semver=1.2.4-beta+20201109212416
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
buildscript {
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath "net.thauvin.erik.gradle:semver:1.0.2"
|
||||
classpath "net.thauvin.erik.gradle:semver:1.0.5-beta"
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -13,7 +14,7 @@ apply plugin: 'net.thauvin.erik.gradle.semver'
|
|||
|
||||
mainClassName = 'App'
|
||||
|
||||
version = 1.0
|
||||
//version = 1.0
|
||||
|
||||
def f = new File("version.properties")
|
||||
|
||||
|
@ -29,6 +30,13 @@ repositories {
|
|||
jcenter()
|
||||
}
|
||||
|
||||
application {
|
||||
println(project.version)
|
||||
project.afterEvaluate {
|
||||
println(project.version)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
incrementBuildMeta {
|
||||
doFirst {
|
||||
|
@ -39,11 +47,15 @@ incrementBuildMeta {
|
|||
|
||||
run {
|
||||
doFirst {
|
||||
println("Version: $version")
|
||||
println("Version: $semver.major$semver.separator$semver.minor$semver.separator$semver.patch$semver.preReleasePrefix$semver.preRelease$semver.buildMetaPrefix$semver.buildMeta")
|
||||
args = [f.name]
|
||||
}
|
||||
}
|
||||
|
||||
task echoVersion(type:Exec) {
|
||||
commandLine "echo", "${-> version}"
|
||||
}
|
||||
|
||||
semver {
|
||||
properties = "${f.name}"
|
||||
keysPrefix = f.name.substring(0, f.name.indexOf(".") + 1)
|
||||
|
|
|
@ -1,15 +0,0 @@
|
|||
/*
|
||||
* 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());
|
||||
}
|
||||
}
|
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Binary file not shown.
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
@ -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-6.7-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
|
35
gradlew
vendored
35
gradlew
vendored
|
@ -82,6 +82,7 @@ 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
|
||||
|
@ -125,10 +126,11 @@ if $darwin; then
|
|||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; 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
|
||||
|
@ -154,19 +156,19 @@ if $cygwin ; then
|
|||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=$((i+1))
|
||||
i=`expr $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,14 +177,9 @@ 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" "$@"
|
||||
|
|
25
gradlew.bat
vendored
25
gradlew.bat
vendored
|
@ -29,6 +29,9 @@ 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"
|
||||
|
||||
|
@ -37,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
|
|||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
if "%ERRORLEVEL%" == "0" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
@ -51,7 +54,7 @@ goto fail
|
|||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
|
@ -61,28 +64,14 @@ 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 %CMD_LINE_ARGS%
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
|
|
|
@ -1 +1,17 @@
|
|||
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"
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SemverConfig.kt
|
||||
*
|
||||
* Copyright (c) 2018-2019, Erik C. Thauvin (erik@thauvin.net)
|
||||
* Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -74,7 +74,7 @@ open class SemverConfig @Inject constructor(
|
|||
get() = "$keysPrefix$field"
|
||||
var keysPrefix = DEFAULT_KEYS_PREFIX
|
||||
|
||||
// Properties
|
||||
// Extension Properties
|
||||
val semver: String
|
||||
get() = semVersion.semver
|
||||
val version: String
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SemverIncrementBuildMetaTask.kt
|
||||
*
|
||||
* Copyright (c) 2018-2019, Erik C. Thauvin (erik@thauvin.net)
|
||||
* Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SemverIncrementTask.kt
|
||||
*
|
||||
* Copyright (c) 2018-2019, Erik C. Thauvin (erik@thauvin.net)
|
||||
* Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SemverPlugin.kt
|
||||
*
|
||||
* Copyright (c) 2018-2019, Erik C. Thauvin (erik@thauvin.net)
|
||||
* Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -70,7 +70,8 @@ class SemverPlugin : Plugin<Project> {
|
|||
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: $isNew, isFile: $isFile, canRead: ${canRead()}]"
|
||||
)
|
||||
|
||||
val props = Utils.loadProperties(this)
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SortedProperties.kt
|
||||
*
|
||||
* Copyright (c) 2018-2019, Erik C. Thauvin (erik@thauvin.net)
|
||||
* Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* Utils.kt
|
||||
*
|
||||
* Copyright (c) 2018-2019, Erik C. Thauvin (erik@thauvin.net)
|
||||
* Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -36,6 +36,7 @@ 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
|
||||
|
||||
/**
|
||||
|
@ -77,7 +78,7 @@ object Utils {
|
|||
if (!exists() && createNewFile()) {
|
||||
isNew = true
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
} catch (e: IOException) {
|
||||
throw GradleException("Unable to create: `$absoluteFile`", e)
|
||||
}
|
||||
if (canReadFile()) {
|
||||
|
@ -131,26 +132,29 @@ object Utils {
|
|||
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]"),
|
||||
5
|
||||
max
|
||||
)
|
||||
|
||||
if (parts.size >= 3) {
|
||||
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 > 3) {
|
||||
if (parts.size > min) {
|
||||
when {
|
||||
parts.size == 5 -> {
|
||||
parts.size == max -> {
|
||||
version.preRelease = parts[3]
|
||||
version.buildMeta = parts[4]
|
||||
}
|
||||
parts.size == 4 -> {
|
||||
if (input.contains(version.buildMetaPrefix)) {
|
||||
if (input.endsWith(version.buildMetaPrefix + parts[3])) {
|
||||
version.buildMeta = parts[3]
|
||||
} else {
|
||||
version.preRelease = parts[3]
|
||||
|
@ -208,11 +212,11 @@ object Utils {
|
|||
store(it, "Generated by the Semver Plugin for Gradle")
|
||||
}
|
||||
} else {
|
||||
throw GradleException()
|
||||
throw IOException("Can't write.")
|
||||
}
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
throw GradleException("Unable to write version to: `${propsFile.absoluteFile}`")
|
||||
} catch (e: IOException) {
|
||||
throw GradleException("Unable to write version to: `${propsFile.absoluteFile}`", e)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* Version.kt
|
||||
*
|
||||
* Copyright (c) 2018-2019, Erik C. Thauvin (erik@thauvin.net)
|
||||
* Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SemverConfigSpec.kt
|
||||
*
|
||||
* Copyright (c) 2018-2019, Erik C. Thauvin (erik@thauvin.net)
|
||||
* Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -40,8 +40,8 @@ import kotlin.test.assertTrue
|
|||
@Suppress("unused")
|
||||
object SemverConfigSpec : Spek({
|
||||
Feature("SemverConfig") {
|
||||
val config = SemverConfig(Version())
|
||||
Scenario("Testing configs") {
|
||||
val config by memoized { SemverConfig(Version()) }
|
||||
val vars = listOf(
|
||||
config.semverKey,
|
||||
config.majorKey,
|
||||
|
@ -90,7 +90,8 @@ object SemverConfigSpec : Spek({
|
|||
config.preReleasePrefixKey,
|
||||
config.buildMetaKey,
|
||||
config.buildMetaPrefixKey,
|
||||
config.separatorKey)
|
||||
config.separatorKey
|
||||
)
|
||||
}
|
||||
|
||||
Then("all config keys should start with test.xxxx") {
|
||||
|
@ -98,6 +99,26 @@ object SemverConfigSpec : Spek({
|
|||
assertTrue(k.startsWith("test."), k)
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* SemverVersionSpec.kt
|
||||
*
|
||||
* Copyright (c) 2018-2019, Erik C. Thauvin (erik@thauvin.net)
|
||||
* Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
/*
|
||||
* UtilsSpec.kt
|
||||
*
|
||||
* Copyright (c) 2018-2019, Erik C. Thauvin (erik@thauvin.net)
|
||||
* Copyright (c) 2018-2020, Erik C. Thauvin (erik@thauvin.net)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -36,212 +36,234 @@ import org.gradle.api.GradleException
|
|||
import org.spekframework.spek2.Spek
|
||||
import org.spekframework.spek2.style.gherkin.Feature
|
||||
import java.io.File
|
||||
import java.util.Properties
|
||||
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
|
||||
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<Pair<String, String>>
|
||||
|
||||
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("Testing Version Parsing") {
|
||||
When("validating version parsing") {
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
Given("new prefixes") {
|
||||
version.preReleasePrefix = "."
|
||||
version.buildMetaPrefix = "."
|
||||
}
|
||||
|
||||
Then("validating prefixes parsing") {
|
||||
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("verifying pre-release and meta") {
|
||||
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<GradleException> {
|
||||
Utils.loadProperties(File(locked, propsFile.name))
|
||||
}
|
||||
locked.delete()
|
||||
}
|
||||
}
|
||||
|
||||
Scenario("Save to locked properties") {
|
||||
lateinit var propsLocked: File
|
||||
Given("the locked properties") {
|
||||
propsLocked = File("locked.properties")
|
||||
propsLocked.createNewFile()
|
||||
propsLocked.setReadOnly()
|
||||
config.properties = propsLocked.name
|
||||
}
|
||||
|
||||
Then("saving the locked properties file") {
|
||||
assertFailsWith<GradleException> {
|
||||
Scenario("Save/Load Properties") {
|
||||
When("saving the property") {
|
||||
config.properties = propsFile.name
|
||||
Utils.saveProperties(projectDir, 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("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")
|
||||
}
|
||||
}
|
||||
|
||||
Then("foo properties file should exists and be readable") {
|
||||
assertEquals(fooProps.canReadFile(), fooProps.canRead() && fooProps.isFile)
|
||||
Scenario("System Properties") {
|
||||
lateinit var sysProps: Array<Pair<String, String>>
|
||||
|
||||
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))
|
||||
}
|
||||
}
|
||||
|
||||
When("loading the foo properties file") {
|
||||
props = Utils.loadProperties(fooProps)
|
||||
fooProps.delete()
|
||||
fooDir.delete()
|
||||
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<GradleException>("2.1.1a") {
|
||||
Utils.parseSemVer("2.1.1a", version)
|
||||
}
|
||||
assertFailsWith<GradleException>("2a.1.1") {
|
||||
Utils.parseSemVer("2a.1.1", version)
|
||||
}
|
||||
assertFailsWith<GradleException>("2.1a.1") {
|
||||
Utils.parseSemVer("2.1a.1", version)
|
||||
}
|
||||
assertFailsWith<GradleException>("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")
|
||||
}
|
||||
}
|
||||
|
||||
Then("version in foo properties should be the same") {
|
||||
assertEquals(props.getProperty(config.semverKey), version.semver)
|
||||
Scenario("Load locked properties") {
|
||||
lateinit var locked: File
|
||||
|
||||
Given("the locked location") {
|
||||
locked = File("locked")
|
||||
}
|
||||
|
||||
Then("loading locked properties") {
|
||||
assertFailsWith<GradleException> {
|
||||
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<GradleException> {
|
||||
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue