diff --git a/.circleci/config.yml b/.circleci/config.yml index 17b50f1..09d8896 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1,8 +1,4 @@ -version: 2.1 - -orbs: - sdkman: joshdholtz/sdkman@0.2.0 - +version: 2 defaults: &defaults working_directory: ~/repo environment: @@ -10,31 +6,18 @@ defaults: &defaults TERM: dumb CI_NAME: "CircleCI" -commands: - build_and_test: - parameters: - reports-dir: - type: string - default: "build/reports/test_results" - steps: - - checkout - - sdkman/setup-sdkman - - sdkman/sdkman-install: - candidate: kotlin - version: 2.0.0 - - run: - name: Download dependencies - command: ./bld download - - run: - name: Compile source - command: ./bld compile - - run: - name: Run tests - command: ./bld jacoco -reports-dir=<< parameters.reports-dir >> - - store_test_results: - path: << parameters.reports-dir >> - - store_artifacts: - path: build/reports/jacoco/test/html +defaults_bld: &defaults_bld + steps: + - checkout + - run: + name: Download the bld dependencies + command: ./bld download + - run: + name: Compile source with bld + command: ./bld compile + - run: + name: Run tests with bld + command: ./bld test jobs: bld_jdk17: @@ -43,8 +26,7 @@ jobs: docker: - image: cimg/openjdk:17.0 - steps: - - build_and_test + <<: *defaults_bld bld_jdk20: <<: *defaults @@ -52,10 +34,10 @@ jobs: docker: - image: cimg/openjdk:20.0 - steps: - - build_and_test + <<: *defaults_bld workflows: + version: 2 bld: jobs: - bld_jdk17 diff --git a/.github/workflows/bld.yml b/.github/workflows/bld.yml index 690e191..19a51fd 100644 --- a/.github/workflows/bld.yml +++ b/.github/workflows/bld.yml @@ -2,19 +2,16 @@ name: bld-ci on: [push, pull_request, workflow_dispatch] -env: - COVERAGE_JDK: "21" - COVERAGE_KOTLIN: "2.0.0" - KOTLIN_HOME: /usr/share/kotlinc - jobs: build-bld-project: runs-on: ubuntu-latest + env: + COVERAGE_SDK: "17" + strategy: matrix: - java-version: [ 17, 21, 22 ] - kotlin-version: [ 1.9.24, 2.0.0 ] + java-version: [17, 21, 22] steps: - name: Checkout source repository @@ -22,28 +19,31 @@ jobs: with: fetch-depth: 0 - - name: Set up JDK ${{ matrix.java-version }} with Kotlin ${{ matrix.kotlin-version }} + - name: Set up JDK ${{ matrix.java-version }} uses: actions/setup-java@v4 with: distribution: "zulu" java-version: ${{ matrix.java-version }} - - name: Download dependencies + - name: Grant bld execute permission + run: chmod +x bld + + - name: Download the bld dependencies run: ./bld download - - name: Compile source + - name: Compile source with bld run: ./bld compile - - name: Run tests + - name: Run tests with bld run: ./bld jacoco - name: Remove pom.xml - if: success() && matrix.java-version == env.COVERAGE_JDK && matrix.kotlin-version == env.COVERAGE_KOTLIN + if: success() && matrix.java-version == env.COVERAGE_SDK run: rm -rf pom.xml - name: SonarCloud Scan uses: sonarsource/sonarcloud-github-action@master - if: success() && matrix.java-version == env.COVERAGE_JDK && matrix.kotlin-version == env.COVERAGE_KOTLIN + if: success() && matrix.java-version == env.COVERAGE_SDK env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} diff --git a/.gitignore b/.gitignore index ea86fe8..9c35a25 100644 --- a/.gitignore +++ b/.gitignore @@ -54,4 +54,4 @@ atlassian-ide-plugin.xml # Editor-based Rest Client .idea/httpRequests -local.properties +local.properties \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 10b9b0f..052df48 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,24 +1,11 @@ -image: fedora:latest - -variables: - CI_NAME: "GitLab CI" +image: openjdk:17 stages: - test -before_script: - - dnf -qy update && dnf -y install zip - - curl -s "https://get.sdkman.io" | bash - - echo sdkman_auto_answer=true > $HOME/.sdkman/etc/config - - echo sdkman_auto_selfupdate=true >> $HOME/.sdkman/etc/config - - source "$HOME/.sdkman/bin/sdkman-init.sh" - - sdk install java - - sdk install kotlin - - source "$HOME/.sdkman/bin/sdkman-init.sh" - test: stage: test script: - - ./bld download - - ./bld compile - - ./bld test + - ./bld download + - ./bld compile + - ./bld test diff --git a/.idea/bld.xml b/.idea/bld.xml deleted file mode 100644 index 6600cee..0000000 --- a/.idea/bld.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/libraries/bld.xml b/.idea/libraries/bld.xml index 5c4010c..a2969be 100644 --- a/.idea/libraries/bld.xml +++ b/.idea/libraries/bld.xml @@ -2,12 +2,12 @@ - + - + diff --git a/.idea/libraries/compile.xml b/.idea/libraries/compile.xml index 99cc0c0..9bd86aa 100644 --- a/.idea/libraries/compile.xml +++ b/.idea/libraries/compile.xml @@ -7,7 +7,7 @@ - - + + \ No newline at end of file diff --git a/.idea/libraries/runtime.xml b/.idea/libraries/runtime.xml index d4069f2..2ae5c4b 100644 --- a/.idea/libraries/runtime.xml +++ b/.idea/libraries/runtime.xml @@ -8,7 +8,7 @@ - - + + \ No newline at end of file diff --git a/.idea/libraries/test.xml b/.idea/libraries/test.xml index 57ed5ef..b80486a 100644 --- a/.idea/libraries/test.xml +++ b/.idea/libraries/test.xml @@ -8,7 +8,7 @@ - - + + \ No newline at end of file diff --git a/README.md b/README.md index e25326e..66a15d8 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![License (3-Clause BSD)](https://img.shields.io/badge/license-BSD%203--Clause-blue.svg?style=flat-square)](https://opensource.org/licenses/BSD-3-Clause) -[![Kotlin](https://img.shields.io/badge/kotlin-2.0.20-7f52ff)](https://kotlinlang.org/) -[![bld](https://img.shields.io/badge/2.1.0-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) +[![Kotlin](https://img.shields.io/badge/kotlin-2.0.0-7f52ff)](https://kotlinlang.org/) +[![bld](https://img.shields.io/badge/1.9.1-FA9052?label=bld&labelColor=2392FF)](https://rife2.com/bld) [![Release](https://img.shields.io/github/release/ethauvin/cryptoprice.svg)](https://github.com/ethauvin/cryptoprice/releases/latest) [![Maven Central](https://img.shields.io/maven-central/v/net.thauvin.erik/cryptoprice)](https://central.sonatype.com/artifact/net.thauvin.erik/cryptoprice) [![Nexus Snapshot](https://img.shields.io/nexus/s/net.thauvin.erik/cryptoprice?label=snapshot&server=https%3A%2F%2Foss.sonatype.org%2F)](https://oss.sonatype.org/content/repositories/snapshots/net/thauvin/erik/cryptoprice/) @@ -11,7 +11,7 @@ # Retrieve cryptocurrencies current (buy, sell or spot) prices -A simple implementation of the prices [Coinbase Public API](https://docs.cdp.coinbase.com/coinbase-app/docs/api-prices). +A simple implementation of the prices [Coinbase Public API](https://docs.cloud.coinbase.com/sign-in-with-coinbase/docs/api-prices). ## Examples (TL;DR) @@ -94,7 +94,7 @@ A `CryptoPrice` object is returned defined as follows: ```kotlin CryptoPrice(val base: String, val currency: String, val amount: BigDecimal) ``` -The parameter names match the [Coinbase API](https://docs.cdp.coinbase.com/coinbase-app/docs/api-prices). +The parameter names match the [Coinbase API](https://docs.cloud.coinbase.com/sign-in-with-coinbase/docs/api-prices). #### Format @@ -123,7 +123,7 @@ println(price.toJson()) {"data":{"base":"BTC","currency":"USD","amount":"34567.89"}} ``` -The `data` object matches the [Coinbase API](https://docs.cdp.coinbase.com/coinbase-app/docs/api-prices). To specify a different (or no) key, use: +The `data` object matches the [Coinbase API](https://docs.cloud.coinbase.com/sign-in-with-coinbase/docs/api-prices). To specify a different (or no) key, use: ```kotlin println(price.toJson("bitcoin")) @@ -146,7 +146,7 @@ val eth = """{"ether":{"base":"ETH","currency":"USD","amount":"2345.67"}}""".toP ### Extending -A generic `apiCall()` function is available to access other [data API endpoints](https://docs.cdp.coinbase.com/coinbase-app/docs/api-currencies). For example to retrieve the [exchange rates](https://docs.cdp.coinbase.com/coinbase-app/docs/api-exchange-rates): +A generic `apiCall()` function is available to access other [data API endpoints](https://docs.cloud.coinbase.com/sign-in-with-coinbase/docs/api-currencies). For example to retrieve the [exchange rates](https://docs.cloud.coinbase.com/sign-in-with-coinbase/docs/api-exchange-rates#get-exchange-rates): ```kotlin apiCall(listOf("exchange-rates"), mapOf("currency" to "usd")) diff --git a/bitbucket-pipelines.yml b/bitbucket-pipelines.yml index ace99d2..7c85194 100644 --- a/bitbucket-pipelines.yml +++ b/bitbucket-pipelines.yml @@ -1,20 +1,10 @@ -image: ubuntu:latest +image: openjdk:17 pipelines: default: - step: name: Test with bld script: - # Install latest Java & Kotlin via SDKMAN! - - apt-get update -qq && apt-get install -y curl zip - - curl -s "https://get.sdkman.io" | bash - - echo sdkman_auto_answer=true > $HOME/.sdkman/etc/config - - echo sdkman_auto_selfupdate=true >> $HOME/.sdkman/etc/config - - source "$HOME/.sdkman/bin/sdkman-init.sh" - - sdk install java - - sdk install kotlin - - source "$HOME/.sdkman/bin/sdkman-init.sh" - # Download, compile and test with bld - ./bld download - ./bld compile - ./bld test diff --git a/examples/bld/.idea/bld.xml b/examples/bld/.idea/bld.xml deleted file mode 100644 index 6600cee..0000000 --- a/examples/bld/.idea/bld.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/examples/bld/.idea/libraries/bld.xml b/examples/bld/.idea/libraries/bld.xml index ffb935c..cb3eddb 100644 --- a/examples/bld/.idea/libraries/bld.xml +++ b/examples/bld/.idea/libraries/bld.xml @@ -2,11 +2,11 @@ - + - + diff --git a/examples/bld/.idea/libraries/compile.xml b/examples/bld/.idea/libraries/compile.xml index 99cc0c0..9bd86aa 100644 --- a/examples/bld/.idea/libraries/compile.xml +++ b/examples/bld/.idea/libraries/compile.xml @@ -7,7 +7,7 @@ - - + + \ No newline at end of file diff --git a/examples/bld/.idea/libraries/runtime.xml b/examples/bld/.idea/libraries/runtime.xml index d4069f2..2ae5c4b 100644 --- a/examples/bld/.idea/libraries/runtime.xml +++ b/examples/bld/.idea/libraries/runtime.xml @@ -8,7 +8,7 @@ - - + + \ No newline at end of file diff --git a/examples/bld/.idea/libraries/test.xml b/examples/bld/.idea/libraries/test.xml index 57ed5ef..b80486a 100644 --- a/examples/bld/.idea/libraries/test.xml +++ b/examples/bld/.idea/libraries/test.xml @@ -8,7 +8,7 @@ - - + + \ No newline at end of file diff --git a/examples/bld/.vscode/settings.json b/examples/bld/.vscode/settings.json index 4c33beb..d136e4d 100644 --- a/examples/bld/.vscode/settings.json +++ b/examples/bld/.vscode/settings.json @@ -9,7 +9,7 @@ ], "java.configuration.updateBuildConfiguration": "automatic", "java.project.referencedLibraries": [ - "${HOME}/.bld/dist/bld-2.1.0.jar", + "${HOME}/.bld/dist/bld-1.9.1.jar", "lib/**/*.jar" ] } diff --git a/examples/bld/lib/bld/bld-wrapper.jar b/examples/bld/lib/bld/bld-wrapper.jar index eec65f5..36c0b74 100644 Binary files a/examples/bld/lib/bld/bld-wrapper.jar and b/examples/bld/lib/bld/bld-wrapper.jar differ diff --git a/examples/bld/lib/bld/bld-wrapper.properties b/examples/bld/lib/bld/bld-wrapper.properties index 28c5833..8c08ccc 100644 --- a/examples/bld/lib/bld/bld-wrapper.properties +++ b/examples/bld/lib/bld/bld-wrapper.properties @@ -1,7 +1,7 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.downloadLocation= -bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.2 +bld.extensions=com.uwyn.rife2:bld-kotlin:0.9.8 bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES +bld.downloadLocation= bld.sourceDirectories= -bld.version=2.1.0 +bld.version=1.9.1 diff --git a/examples/gradle/.gitignore b/examples/gradle/.gitignore index 44369dd..1b6985c 100644 --- a/examples/gradle/.gitignore +++ b/examples/gradle/.gitignore @@ -3,5 +3,3 @@ # Ignore Gradle build output directory build - -bin diff --git a/examples/gradle/bin/main/com/example/CryptoPriceExample.kt b/examples/gradle/bin/main/com/example/CryptoPriceExample.kt new file mode 100644 index 0000000..5c670a8 --- /dev/null +++ b/examples/gradle/bin/main/com/example/CryptoPriceExample.kt @@ -0,0 +1,47 @@ +package com.example + +import net.thauvin.erik.crypto.CryptoException +import net.thauvin.erik.crypto.CryptoPrice.Companion.apiCall +import net.thauvin.erik.crypto.CryptoPrice.Companion.buyPrice +import net.thauvin.erik.crypto.CryptoPrice.Companion.sellPrice +import net.thauvin.erik.crypto.CryptoPrice.Companion.spotPrice +import org.json.JSONObject +import java.io.IOException + +fun main(args: Array) { + try { + if (args.isNotEmpty()) { + val price = if (args.size == 2) spotPrice(args[0], args[1]) else spotPrice(args[0]) + println("The current ${price.base} price is ${price.toCurrency()}") + } else { + // Get current Bitcoin spot price. + val price = spotPrice("BTC") + println("The current Bitcoin price is ${price.toCurrency()}") + + println() + + // Get current Ethereum sell price in Pound sterling. + val gbpPrice = sellPrice("ETH", "GBP") + println("The current Ethereum sell price is ${gbpPrice.toCurrency()}") + + // Get current Litecoin buy price in Euro. + val euroPrice = buyPrice("LTC", "EUR") + println("The current Litecoin buy price is ${euroPrice.toCurrency()}") + + println() + + // Get exchange rate using API. + // See: https://docs.cloud.coinbase.com/sign-in-with-coinbase/docs/api-exchange-rates + val response = apiCall(listOf("exchange-rates"), mapOf("currency" to "usd")) + val rates = JSONObject(response).getJSONObject("data").getJSONObject("rates") + println("The USD-EUR exchange rate is: ${rates.getString("EUR")}") + } + } catch (e: CryptoException) { + System.err.println("HTTP Status Code: ${e.statusCode}") + System.err.println(e.message) + } catch (ignore: IllegalArgumentException) { + System.err.println("Could not display the specified currency: ${args[1]}") + } catch (e: IOException) { + System.err.println(e.message) + } +} diff --git a/examples/gradle/bin/main/com/example/CryptoPriceSample.class b/examples/gradle/bin/main/com/example/CryptoPriceSample.class new file mode 100644 index 0000000..feb8e49 Binary files /dev/null and b/examples/gradle/bin/main/com/example/CryptoPriceSample.class differ diff --git a/examples/gradle/build.gradle.kts b/examples/gradle/build.gradle.kts index 7d109c6..054402a 100644 --- a/examples/gradle/build.gradle.kts +++ b/examples/gradle/build.gradle.kts @@ -3,7 +3,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { id("application") id("com.github.ben-manes.versions") version "0.51.0" - kotlin("jvm") version "2.0.20" + kotlin("jvm") version "2.0.0" } defaultTasks(ApplicationPlugin.TASK_RUN_NAME) diff --git a/examples/gradle/gradle/wrapper/gradle-wrapper.jar b/examples/gradle/gradle/wrapper/gradle-wrapper.jar index a4b76b9..e644113 100644 Binary files a/examples/gradle/gradle/wrapper/gradle-wrapper.jar and b/examples/gradle/gradle/wrapper/gradle-wrapper.jar differ diff --git a/examples/gradle/gradle/wrapper/gradle-wrapper.properties b/examples/gradle/gradle/wrapper/gradle-wrapper.properties index 0aaefbc..b82aa23 100644 --- a/examples/gradle/gradle/wrapper/gradle-wrapper.properties +++ b/examples/gradle/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/examples/gradle/gradlew b/examples/gradle/gradlew index f5feea6..1aa94a4 100755 --- a/examples/gradle/gradlew +++ b/examples/gradle/gradlew @@ -15,8 +15,6 @@ # See the License for the specific language governing permissions and # limitations under the License. # -# SPDX-License-Identifier: Apache-2.0 -# ############################################################################## # @@ -57,7 +55,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -86,8 +84,7 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s -' "$PWD" ) || exit +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum diff --git a/examples/gradle/gradlew.bat b/examples/gradle/gradlew.bat index 9d21a21..25da30d 100644 --- a/examples/gradle/gradlew.bat +++ b/examples/gradle/gradlew.bat @@ -13,8 +13,6 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem -@rem SPDX-License-Identifier: Apache-2.0 -@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## diff --git a/lib/bld/bld-wrapper.jar b/lib/bld/bld-wrapper.jar index a8a4ccd..76333db 100644 Binary files a/lib/bld/bld-wrapper.jar and b/lib/bld/bld-wrapper.jar differ diff --git a/lib/bld/bld-wrapper.properties b/lib/bld/bld-wrapper.properties index ee5e7de..26274e0 100644 --- a/lib/bld/bld-wrapper.properties +++ b/lib/bld/bld-wrapper.properties @@ -1,10 +1,9 @@ bld.downloadExtensionJavadoc=false bld.downloadExtensionSources=true -bld.downloadLocation= -bld.extension-detekt=com.uwyn.rife2:bld-detekt:0.9.7 -bld.extension-dokka=com.uwyn.rife2:bld-dokka:1.0.1 -bld.extension-jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.8 -bld.extension-kotlin=com.uwyn.rife2:bld-kotlin:1.0.2 +bld.extension.jacoco=com.uwyn.rife2:bld-jacoco-report:0.9.5 +bld.extensions=com.uwyn.rife2:bld-kotlin:0.9.8 +bld.extension-detekt=com.uwyn.rife2:bld-detekt:0.9.4 bld.repositories=MAVEN_LOCAL,MAVEN_CENTRAL,RIFE2_SNAPSHOTS,RIFE2_RELEASES +bld.downloadLocation= bld.sourceDirectories= -bld.version=2.1.0 +bld.version=1.9.1 diff --git a/src/bld/java/net/thauvin/erik/crypto/CryptoPriceBuild.java b/src/bld/java/net/thauvin/erik/crypto/CryptoPriceBuild.java index 41f47b6..af7e86f 100644 --- a/src/bld/java/net/thauvin/erik/crypto/CryptoPriceBuild.java +++ b/src/bld/java/net/thauvin/erik/crypto/CryptoPriceBuild.java @@ -35,8 +35,8 @@ import rife.bld.BuildCommand; import rife.bld.Project; import rife.bld.extension.CompileKotlinOperation; import rife.bld.extension.DetektOperation; -import rife.bld.extension.DokkaOperation; import rife.bld.extension.JacocoReportOperation; +import rife.bld.extension.dokka.DokkaOperation; import rife.bld.extension.dokka.LoggingLevel; import rife.bld.extension.dokka.OutputFormat; import rife.bld.operations.exceptions.ExitStatusException; @@ -69,7 +69,7 @@ public class CryptoPriceBuild extends Project { autoDownloadPurge = true; repositories = List.of(MAVEN_LOCAL, MAVEN_CENTRAL); - final var kotlin = version(2, 0, 20); + final var kotlin = version(2, 0, 0); scope(compile) .include(dependency("org.jetbrains.kotlin", "kotlin-stdlib", kotlin)) .include(dependency("org.json", "json", "20240303")) @@ -77,8 +77,8 @@ public class CryptoPriceBuild extends Project { scope(test) .include(dependency("com.willowtreeapps.assertk", "assertk-jvm", version(0, 28, 1))) .include(dependency("org.jetbrains.kotlin", "kotlin-test-junit5", kotlin)) - .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 11, 0))) - .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 11, 0))); + .include(dependency("org.junit.jupiter", "junit-jupiter", version(5, 10, 2))) + .include(dependency("org.junit.platform", "junit-platform-console-standalone", version(1, 10, 2))); publishOperation() .repository(version.isSnapshot() ? repository(SONATYPE_SNAPSHOTS_LEGACY.location()) @@ -90,20 +90,23 @@ public class CryptoPriceBuild extends Project { .artifactId(name) .description("Retrieve cryptocurrencies prices") .url("https://github.com/ethauvin/" + name) - .developer(new PublishDeveloper() - .id("ethauvin") - .name("Erik C. Thauvin") - .email("erik@thauvin.net") - .url("https://erik.thauvin.net/") + .developer( + new PublishDeveloper() + .id("ethauvin") + .name("Erik C. Thauvin") + .email("erik@thauvin.net") + .url("https://erik.thauvin.net/") ) - .license(new PublishLicense() - .name("BSD 3-Clause") - .url("https://opensource.org/licenses/BSD-3-Clause") + .license( + new PublishLicense() + .name("BSD 3-Clause") + .url("https://opensource.org/licenses/BSD-3-Clause") ) - .scm(new PublishScm() - .connection("scm:git:https://github.com/ethauvin/" + name + ".git") - .developerConnection("scm:git:git@github.com:ethauvin/" + name + ".git") - .url("https://github.com/ethauvin/" + name) + .scm( + new PublishScm() + .connection("scm:git:https://github.com/ethauvin/" + name + ".git") + .developerConnection("scm:git:git@github.com:ethauvin/" + name + ".git") + .url("https://github.com/ethauvin/" + name) ) .signKey(property("sign.key")) .signPassphrase(property("sign.passphrase")); @@ -117,7 +120,7 @@ public class CryptoPriceBuild extends Project { @BuildCommand(summary = "Compiles the Kotlin project") @Override - public void compile() throws Exception { + public void compile() throws IOException { new CompileKotlinOperation() .fromProject(this) .execute(); @@ -140,7 +143,7 @@ public class CryptoPriceBuild extends Project { } @BuildCommand(summary = "Generates JaCoCo Reports") - public void jacoco() throws Exception { + public void jacoco() throws IOException { new JacocoReportOperation() .fromProject(this) .sourceFiles(srcMainKotlin)