Use conventions instead of cross-project configuration

gradle userguide suggests to avoid allprojects/subprojects and use conventions instead

https://docs.gradle.org/current/userguide/sharing_build_logic_between_subprojects.html#sec:convention_plugins_vs_cross_configuration
This commit is contained in:
Manuel Fuhr 2024-04-05 23:11:58 +02:00
parent b8929ab414
commit 5d4065d141
15 changed files with 80 additions and 70 deletions

View file

@ -1,8 +1,7 @@
plugins { plugins {
id 'java-library' id 'brouter.library-conventions'
} }
dependencies { dependencies {
implementation project(':brouter-util') implementation project(':brouter-util')
testImplementation 'junit:junit:4.13.1'
} }

View file

@ -1,5 +1,5 @@
plugins { plugins {
id 'java-library' id 'brouter.library-conventions'
} }
dependencies { dependencies {
@ -7,7 +7,6 @@ dependencies {
implementation project(':brouter-util') implementation project(':brouter-util')
implementation project(':brouter-expressions') implementation project(':brouter-expressions')
implementation project(':brouter-codec') implementation project(':brouter-codec')
testImplementation 'junit:junit:4.13.2'
} }
// MapcreatorTest generates segments which are used in tests // MapcreatorTest generates segments which are used in tests

View file

@ -1,9 +1,8 @@
plugins { plugins {
id 'java-library' id 'brouter.library-conventions'
} }
dependencies { dependencies {
implementation project(':brouter-util') implementation project(':brouter-util')
implementation project(':brouter-codec') implementation project(':brouter-codec')
testImplementation 'junit:junit:4.13.1'
} }

View file

@ -1,5 +1,5 @@
plugins { plugins {
id 'java-library' id 'brouter.application-conventions'
} }
dependencies { dependencies {
@ -8,6 +8,4 @@ dependencies {
implementation project(':brouter-expressions') implementation project(':brouter-expressions')
implementation group: 'org.openstreetmap.osmosis', name: 'osmosis-osm-binary', version: '0.48.3' implementation group: 'org.openstreetmap.osmosis', name: 'osmosis-osm-binary', version: '0.48.3'
testImplementation('junit:junit:4.13.1')
} }

View file

@ -1,12 +1,11 @@
plugins { plugins {
id 'java-library' id 'brouter.library-conventions'
} }
dependencies { dependencies {
implementation project(':brouter-util') implementation project(':brouter-util')
implementation project(':brouter-codec') implementation project(':brouter-codec')
implementation project(':brouter-expressions') implementation project(':brouter-expressions')
testImplementation 'junit:junit:4.13.2'
} }
// MapcreatorTest generates segments which are used in tests // MapcreatorTest generates segments which are used in tests

View file

@ -2,6 +2,8 @@ import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform
plugins { plugins {
id 'com.android.application' id 'com.android.application'
id 'checkstyle'
id 'brouter.version-conventions'
} }
android { android {
@ -88,6 +90,11 @@ android {
} }
} }
repositories {
mavenCentral()
google()
}
dependencies { dependencies {
implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'androidx.appcompat:appcompat:1.6.1'
implementation "androidx.constraintlayout:constraintlayout:2.1.4" implementation "androidx.constraintlayout:constraintlayout:2.1.4"

View file

@ -1,13 +1,10 @@
plugins { plugins {
id 'application' id 'brouter.application-conventions'
} }
application { application {
mainClass.set('btools.server.BRouter') mainClass.set('btools.server.BRouter')
distTar.enabled = false
jar { jar {
manifest { manifest {
attributes "Main-Class": getMainClass(), "Implementation-Version": project.version attributes "Main-Class": getMainClass(), "Implementation-Version": project.version
@ -78,6 +75,5 @@ dependencies {
implementation project(':brouter-mapaccess') implementation project(':brouter-mapaccess')
implementation project(':brouter-util') implementation project(':brouter-util')
testImplementation 'junit:junit:4.13.2'
testImplementation 'org.json:json:20180813' testImplementation 'org.json:json:20180813'
} }

View file

@ -1,7 +1,3 @@
plugins { plugins {
id 'java-library' id 'brouter.library-conventions'
}
dependencies {
testImplementation('junit:junit:4.13.1')
} }

View file

@ -1,7 +1,6 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules. // Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript { buildscript {
repositories { repositories {
mavenCentral() mavenCentral()
google() google()
@ -9,57 +8,11 @@ buildscript {
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:8.3.1' classpath 'com.android.tools.build:gradle:8.3.1'
// NOTE: Do not place your application dependencies here; they belong // NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files // in the individual module build.gradle files
} }
} }
allprojects {
// NOTE:
// there are four places to change the version number
// this file
// app: build.gradle (versionCode only)
// OsmTrack (version and versionDate)
// docs revisions.md (version and versionDate)
project.version "1.7.3"
group 'org.btools'
repositories {
mavenCentral()
google()
}
apply plugin: "maven-publish"
publishing {
repositories {
maven {
name = "GitHubPackages"
url = uri("https://maven.pkg.github.com/$System.env.REPO")
credentials {
username = project.findProperty("gpr.user") ?: System.getenv("USERNAME")
password = project.findProperty("gpr.key") ?: System.getenv("TOKEN")
}
}
}
publications {
gpr(MavenPublication)
}
}
apply plugin: "checkstyle"
apply plugin: "pmd"
pmd {
consoleOutput = true
toolVersion = "7.0.0"
rulesMinimumPriority = 5
ruleSetFiles = files("${rootProject.rootDir}/config/pmd/pmd-ruleset.xml")
ruleSets = []
// ignoreFailures = true
}
}
task clean(type: Delete) { task clean(type: Delete) {
delete rootProject.buildDir delete rootProject.buildDir
} }

3
buildSrc/build.gradle Normal file
View file

@ -0,0 +1,3 @@
plugins {
id 'groovy-gradle-plugin'
}

View file

@ -0,0 +1,8 @@
plugins {
id 'application'
id 'brouter.java-conventions'
}
application {
distTar.enabled = false
}

View file

@ -0,0 +1,25 @@
plugins {
id 'java'
id 'checkstyle'
id 'pmd'
id 'brouter.version-conventions'
}
group 'org.btools'
repositories {
mavenCentral()
}
dependencies {
testImplementation 'junit:junit:4.13.2'
}
pmd {
consoleOutput = true
toolVersion = '7.0.0'
rulesMinimumPriority = 5
ruleSetFiles = files("${rootProject.rootDir}/config/pmd/pmd-ruleset.xml")
ruleSets = []
// ignoreFailures = true
}

View file

@ -0,0 +1,21 @@
plugins {
id 'java-library'
id 'maven-publish'
id 'brouter.java-conventions'
}
publishing {
repositories {
maven {
name = 'GitHubPackages'
url = uri("https://maven.pkg.github.com/$System.env.REPO")
credentials {
username = project.findProperty('gpr.user') ?: System.getenv('USERNAME')
password = project.findProperty('gpr.key') ?: System.getenv('TOKEN')
}
}
}
publications {
gpr(MavenPublication)
}
}

View file

@ -0,0 +1,7 @@
// NOTE:
// there are four places to change the version number
// this file
// app: build.gradle (versionCode only)
// OsmTrack (version and versionDate)
// docs revisions.md (version and versionDate)
version '1.7.3'

View file

@ -1,6 +1,6 @@
rootProject.name='brouter' rootProject.name='brouter'
if (file('local.properties').exists()) { if (file('local.properties').exists()) {
include ':brouter-routing-app' include ':brouter-routing-app'
} else { } else {
println "Note: To include Android app add 'local.properties' with 'sdk.dir=...' " println "Note: To include Android app add 'local.properties' with 'sdk.dir=...' "
} }