Skip to content

Commit f2ed7c9

Browse files
committed
Dependency management
1 parent db25c18 commit f2ed7c9

File tree

33 files changed

+454
-417
lines changed

33 files changed

+454
-417
lines changed

.ops/pitest.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ if (!hasAndroid && project.name != "ext-acorn-android-lint") {
44
project.apply plugin: "info.solidsoft.pitest"
55

66
project.dependencies {
7-
pitest("org.pitest:pitest-junit5-plugin:0.14")
7+
pitest(libs.pitest.junit5)
88
}
99

1010
pitest {
1111
targetClasses = ["com.*", "acorn.*"]
12-
pitestVersion = "1.4.9"
12+
pitestVersion = libs.versions.pitest.core.get()
1313
testPlugin = "junit5"
1414
threads = 4
1515
outputFormats = ["XML", "HTML"]

.ops/publishing.gradle

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -151,14 +151,7 @@ publishing {
151151

152152
// Configure signing (only if keys are available)
153153
signing {
154-
def signingKey = findProperty("signingKey") ?: System.getenv("SIGNING_KEY")
155-
def signingPassword = findProperty("signingPassword") ?: System.getenv("SIGNING_PASSWORD")
156-
157-
if (signingKey && signingPassword) {
158-
useInMemoryPgpKeys(signingKey, signingPassword)
159-
sign publishing.publications
160-
} else if (findProperty("signing.secretKeyRingFile") || findProperty("signing.keyId")) {
161-
// Fall back to Gradle's default signing properties if configured via file-based keys
154+
if (findProperty("signing.secretKeyRingFile") || findProperty("signing.keyId")) {
162155
sign publishing.publications
163156
} else {
164157
logger.lifecycle("[publishing] Signing is not configured; publications will not be signed.")

build.gradle

Lines changed: 45 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,33 @@
11
buildscript {
2-
ext.kotlinVersion = "2.2.20"
2+
// Kotlin version managed via version catalog
3+
ext.kotlinVersion = libs.versions.kotlin.plugin.get()
34

45
repositories {
56
google()
67
mavenCentral()
78
}
89

910
dependencies {
10-
classpath("com.android.tools.build:gradle:8.13.0")
11-
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")
12-
classpath("de.mannodermaus.gradle.plugins:android-junit5:1.13.4.0")
13-
classpath("com.adarshr:gradle-test-logger-plugin:4.0.0")
14-
classpath("info.solidsoft.gradle.pitest:gradle-pitest-plugin:1.15.0")
11+
classpath("com.android.tools.build:gradle:${libs.versions.android.gradle.get()}")
12+
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:${libs.versions.kotlin.plugin.get()}")
13+
classpath("de.mannodermaus.gradle.plugins:android-junit5:${libs.versions.android.junit5.plugin.get()}")
14+
classpath("com.adarshr:gradle-test-logger-plugin:${libs.versions.test.logger.plugin.get()}")
15+
classpath("info.solidsoft.gradle.pitest:gradle-pitest-plugin:${libs.versions.gradle.pitest.plugin.get()}")
1516
}
1617
}
1718

1819
plugins {
19-
id("com.github.ben-manes.versions") version "0.52.0"
20-
id("io.spring.dependency-management") version "1.1.7"
20+
alias(libs.plugins.ben.manes.versions)
21+
}
22+
23+
def suppliedVersion = project.findProperty("versionName") ?: project.findProperty("version")
24+
if (!suppliedVersion) {
25+
throw new GradleException("Missing required project property: versionName (or version). Pass with -PversionName=1.2.3")
2126
}
2227

2328
allprojects {
24-
apply from: "$rootDir/.ops/git.gradle"
25-
// Use git-based versioning for all modules
26-
version = git.versionName()
29+
// Use parameter-based versioning for all modules
30+
version = suppliedVersion
2731
}
2832

2933
subprojects {
@@ -32,7 +36,6 @@ subprojects {
3236
mavenCentral()
3337
}
3438

35-
project.apply from: "$rootDir/dependencies.gradle"
3639

3740
afterEvaluate { project ->
3841
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
@@ -72,8 +75,8 @@ subprojects {
7275
defaultConfig {
7376
targetSdkVersion(36)
7477

75-
versionName = git.versionName()
76-
versionCode = git.commitCount()
78+
versionName = suppliedVersion
79+
versionCode = (project.findProperty("versionCode") ?: 1) as int
7780

7881
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
7982
}
@@ -105,4 +108,31 @@ subprojects {
105108
}
106109
}
107110

108-
println("Version ${git.versionName()}")
111+
println("Version ${project.version}")
112+
113+
allprojects { project ->
114+
project.configurations.all {
115+
resolutionStrategy {
116+
eachDependency { dependency ->
117+
if (dependency.requested.name in ["kotlin-stdlib", "kotlin-stdlib-jdk7", "kotlin-stdlib-jdk8", "kotlin-reflect"]) {
118+
dependency.useVersion(kotlinVersion)
119+
}
120+
}
121+
// Ensure consistent resolution of androidx.annotation across configurations
122+
force "androidx.annotation:annotation:${libs.versions.androidx.annotation.get()}"
123+
}
124+
}
125+
}
126+
127+
rootProject.dependencyUpdates.resolutionStrategy {
128+
componentSelection { rules ->
129+
rules.all { ComponentSelection selection ->
130+
boolean rejected = ['alpha', 'beta', 'rc', 'cr', 'm', 'preview'].any { qualifier ->
131+
selection.candidate.version ==~ /(?i).*[.-]${qualifier}[.\d-]*/
132+
}
133+
if (rejected) {
134+
selection.reject('Release candidate')
135+
}
136+
}
137+
}
138+
}

core/acorn-core/build.gradle

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@ compileKotlin {
1717
}
1818

1919
dependencies {
20-
compileOnly "androidx.annotation:annotation"
20+
compileOnly libs.androidx.annotation
2121

22-
testImplementation "org.mockito.kotlin:mockito-kotlin"
23-
testImplementation "com.nhaarman:expect.kt"
24-
testImplementation "org.junit.jupiter:junit-jupiter-api"
25-
testImplementation "org.junit.jupiter:junit-jupiter-engine"
22+
testImplementation libs.mockito.kotlin
23+
testImplementation libs.expectkt
24+
testImplementation libs.junit.jupiter.api
25+
testImplementation libs.junit.jupiter.engine
2626
}

dependencies.gradle

Lines changed: 0 additions & 83 deletions
This file was deleted.

docs/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ repositories {
1919
orchid {
2020
theme = "Editorial"
2121
baseUrl = "https://nhaarman.github.io/acorn"
22-
version = git.versionName()
22+
version = project.rootProject.version.toString()
2323

2424
githubToken = "${System.getenv('GITHUB_TOKEN')}"
2525
}

ext/acorn-android/acorn-android-appcompat/build.gradle

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,13 +29,12 @@ android {
2929
dependencies {
3030
api project(':ext-acorn-android')
3131

32-
api "androidx.appcompat:appcompat"
32+
api libs.androidx.appcompat
3333

34+
compileOnly libs.androidx.annotation
3435

35-
compileOnly "androidx.annotation:annotation"
36-
37-
testImplementation "com.nhaarman:expect.kt"
38-
testImplementation "org.mockito.kotlin:mockito-kotlin"
39-
testImplementation "org.junit.jupiter:junit-jupiter-api"
40-
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine"
36+
testImplementation libs.expectkt
37+
testImplementation libs.mockito.kotlin
38+
testImplementation libs.junit.jupiter.api
39+
testRuntimeOnly libs.junit.jupiter.engine
4140
}

ext/acorn-android/acorn-android-lifecycle/build.gradle

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -29,20 +29,19 @@ android {
2929
dependencies {
3030
api project(':ext-acorn')
3131

32-
api "androidx.lifecycle:lifecycle-runtime"
32+
api libs.androidx.lifecycle.runtime
3333

34+
compileOnly libs.androidx.annotation
3435

35-
compileOnly "androidx.annotation:annotation"
36+
testImplementation libs.expectkt
37+
testImplementation libs.mockito.kotlin
38+
testImplementation libs.junit.jupiter.api
39+
testRuntimeOnly libs.junit.jupiter.engine
3640

37-
testImplementation "com.nhaarman:expect.kt"
38-
testImplementation "org.mockito.kotlin:mockito-kotlin"
39-
testImplementation "org.junit.jupiter:junit-jupiter-api"
40-
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine"
41-
42-
androidTestImplementation "junit:junit"
43-
androidTestImplementation "com.nhaarman:expect.kt"
44-
androidTestImplementation "androidx.test.espresso:espresso-core"
45-
androidTestImplementation "androidx.test.espresso:espresso-contrib"
46-
androidTestImplementation "androidx.test:runner"
47-
androidTestImplementation "androidx.test:rules"
41+
androidTestImplementation libs.junit4
42+
androidTestImplementation libs.expectkt
43+
androidTestImplementation libs.androidx.espresso.core
44+
androidTestImplementation libs.androidx.espresso.contrib
45+
androidTestImplementation libs.androidx.test.runner
46+
androidTestImplementation libs.androidx.test.rules
4847
}

ext/acorn-android/acorn-android-lint/build.gradle

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ compileKotlin {
1414
}
1515

1616
dependencies {
17-
compileOnly "com.android.tools.lint:lint-api"
18-
compileOnly "com.android.tools.lint:lint-checks"
17+
compileOnly libs.android.lint.api
18+
compileOnly libs.android.lint.checks
1919

20-
testImplementation "org.junit.jupiter:junit-jupiter-api"
21-
testImplementation "org.junit.jupiter:junit-jupiter-engine"
22-
testImplementation "com.android.tools.lint:lint"
23-
testImplementation "com.android.tools.lint:lint-tests"
20+
testImplementation libs.junit.jupiter.api
21+
testImplementation libs.junit.jupiter.engine
22+
testImplementation libs.android.lint
23+
testImplementation libs.android.lint.tests
2424
}
2525

2626
jar {

ext/acorn-android/acorn-android-statechecks/build.gradle

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,10 @@ android {
2929
dependencies {
3030
api project(':ext-acorn-android')
3131

32+
compileOnly libs.androidx.annotation
3233

33-
compileOnly "androidx.annotation:annotation"
34-
35-
testImplementation "com.nhaarman:expect.kt"
36-
testImplementation "org.mockito.kotlin:mockito-kotlin"
37-
testImplementation "org.junit.jupiter:junit-jupiter-api"
38-
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine"
34+
testImplementation libs.expectkt
35+
testImplementation libs.mockito.kotlin
36+
testImplementation libs.junit.jupiter.api
37+
testRuntimeOnly libs.junit.jupiter.engine
3938
}

0 commit comments

Comments
 (0)