diff options
author | Kristóf Marussy <kristof@marussy.com> | 2021-11-17 03:06:39 +0100 |
---|---|---|
committer | Kristóf Marussy <kristof@marussy.com> | 2021-11-17 03:06:39 +0100 |
commit | 720b9e2fb0968905e5a80f6099eab37554a6af58 (patch) | |
tree | b471f4da129efbfa730830a70e0107de852833d7 | |
parent | build: use version catalogs (diff) | |
download | refinery-720b9e2fb0968905e5a80f6099eab37554a6af58.tar.gz refinery-720b9e2fb0968905e5a80f6099eab37554a6af58.tar.zst refinery-720b9e2fb0968905e5a80f6099eab37554a6af58.zip |
build: move scripts into script plugins
Script plugins allow applying other plugins from plugins { } blocks,
which simplifies the build script.
16 files changed, 92 insertions, 40 deletions
diff --git a/build.gradle b/build.gradle index 91478387..086e899a 100644 --- a/build.gradle +++ b/build.gradle | |||
@@ -1,8 +1,6 @@ | |||
1 | plugins { | 1 | plugins { |
2 | alias libs.plugins.shadow apply false | 2 | id 'eclipse' |
3 | alias libs.plugins.frontend apply false | 3 | id 'org.sonarqube' |
4 | alias libs.plugins.sonarqube | ||
5 | alias libs.plugins.xtend apply false | ||
6 | } | 4 | } |
7 | 5 | ||
8 | allprojects { | 6 | allprojects { |
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle new file mode 100644 index 00000000..74fe04fb --- /dev/null +++ b/buildSrc/build.gradle | |||
@@ -0,0 +1,12 @@ | |||
1 | plugins { | ||
2 | id 'groovy-gradle-plugin' | ||
3 | } | ||
4 | |||
5 | repositories { | ||
6 | gradlePluginPortal() | ||
7 | } | ||
8 | |||
9 | dependencies { | ||
10 | implementation libs.sonarqubeGradle | ||
11 | implementation libs.xtendGradle | ||
12 | } | ||
diff --git a/buildSrc/settings.gradle b/buildSrc/settings.gradle new file mode 100644 index 00000000..794aa2a1 --- /dev/null +++ b/buildSrc/settings.gradle | |||
@@ -0,0 +1,9 @@ | |||
1 | enableFeaturePreview 'VERSION_CATALOGS' | ||
2 | |||
3 | dependencyResolutionManagement { | ||
4 | versionCatalogs { | ||
5 | libs { | ||
6 | from files('../gradle/libs.versions.toml') | ||
7 | } | ||
8 | } | ||
9 | } | ||
diff --git a/gradle/java-common.gradle b/buildSrc/src/main/groovy/tools.refinery.java-conventions.gradle index 0a63cfe1..6bea6e46 100644 --- a/gradle/java-common.gradle +++ b/buildSrc/src/main/groovy/tools.refinery.java-conventions.gradle | |||
@@ -1,3 +1,7 @@ | |||
1 | plugins { | ||
2 | id 'eclipse' | ||
3 | } | ||
4 | |||
1 | repositories { | 5 | repositories { |
2 | mavenCentral() | 6 | mavenCentral() |
3 | maven { | 7 | maven { |
@@ -14,8 +18,6 @@ tasks.named('jar') { | |||
14 | } | 18 | } |
15 | } | 19 | } |
16 | 20 | ||
17 | apply plugin: 'eclipse' | ||
18 | |||
19 | def generateEclipseSourceFolders = tasks.register('generateEclipseSourceFolders') | 21 | def generateEclipseSourceFolders = tasks.register('generateEclipseSourceFolders') |
20 | 22 | ||
21 | tasks.register('prepareEclipse') { | 23 | tasks.register('prepareEclipse') { |
diff --git a/gradle/jmh.gradle b/buildSrc/src/main/groovy/tools.refinery.jmh-conventions.gradle index aa58c2b7..0a82ae4b 100644 --- a/gradle/jmh.gradle +++ b/buildSrc/src/main/groovy/tools.refinery.jmh-conventions.gradle | |||
@@ -1,3 +1,8 @@ | |||
1 | plugins { | ||
2 | id 'org.sonarqube' | ||
3 | id 'tools.refinery.java-conventions' | ||
4 | } | ||
5 | |||
1 | configurations { | 6 | configurations { |
2 | jmh { | 7 | jmh { |
3 | extendsFrom implementation | 8 | extendsFrom implementation |
diff --git a/gradle/junit.gradle b/buildSrc/src/main/groovy/tools.refinery.junit-conventions.gradle index c5b60e47..d62207b7 100644 --- a/gradle/junit.gradle +++ b/buildSrc/src/main/groovy/tools.refinery.junit-conventions.gradle | |||
@@ -1,4 +1,7 @@ | |||
1 | apply plugin: 'jacoco' | 1 | plugins { |
2 | id 'jacoco' | ||
3 | id 'tools.refinery.java-conventions' | ||
4 | } | ||
2 | 5 | ||
3 | dependencies { | 6 | dependencies { |
4 | testImplementation libs.hamcrest | 7 | testImplementation libs.hamcrest |
diff --git a/gradle/mwe2.gradle b/buildSrc/src/main/groovy/tools.refinery.mwe2-conventions.gradle index 6dc3ef67..fe213d42 100644 --- a/gradle/mwe2.gradle +++ b/buildSrc/src/main/groovy/tools.refinery.mwe2-conventions.gradle | |||
@@ -1,3 +1,8 @@ | |||
1 | plugins { | ||
2 | id 'eclipse' | ||
3 | id 'tools.refinery.java-conventions' | ||
4 | } | ||
5 | |||
1 | configurations { | 6 | configurations { |
2 | mwe2 { | 7 | mwe2 { |
3 | extendsFrom implementation | 8 | extendsFrom implementation |
diff --git a/gradle/xtend.gradle b/buildSrc/src/main/groovy/tools.refinery.xtend-conventions.gradle index 94cd7dc7..98fc131c 100644 --- a/gradle/xtend.gradle +++ b/buildSrc/src/main/groovy/tools.refinery.xtend-conventions.gradle | |||
@@ -1,4 +1,8 @@ | |||
1 | apply plugin: libs.plugins.xtend.get().pluginId | 1 | plugins { |
2 | id 'org.sonarqube' | ||
3 | id 'org.xtext.xtend' | ||
4 | id 'tools.refinery.java-conventions' | ||
5 | } | ||
2 | 6 | ||
3 | sourceSets { | 7 | sourceSets { |
4 | main { | 8 | main { |
diff --git a/gradle/xtext-common.gradle b/buildSrc/src/main/groovy/tools.refinery.xtext-conventions.gradle index 09980a90..3fd2f9d6 100644 --- a/gradle/xtext-common.gradle +++ b/buildSrc/src/main/groovy/tools.refinery.xtext-conventions.gradle | |||
@@ -1,4 +1,7 @@ | |||
1 | apply from: "${rootDir}/gradle/java-common.gradle" | 1 | plugins { |
2 | id 'org.sonarqube' | ||
3 | id 'tools.refinery.java-conventions' | ||
4 | } | ||
2 | 5 | ||
3 | sourceSets { | 6 | sourceSets { |
4 | main { | 7 | main { |
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0e711cad..3f08c9ab 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml | |||
@@ -28,8 +28,10 @@ mwe2-launch = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.launch", | |||
28 | mwe2-lib = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.lib", version.ref = "mwe2" } | 28 | mwe2-lib = { group = "org.eclipse.emf", name = "org.eclipse.emf.mwe2.lib", version.ref = "mwe2" } |
29 | slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4j" } | 29 | slf4j-simple = { group = "org.slf4j", name = "slf4j-simple", version.ref = "slf4j" } |
30 | slf4j-log4j = { group = "org.slf4j", name = "log4j-over-slf4j", version.ref = "slf4j" } | 30 | slf4j-log4j = { group = "org.slf4j", name = "log4j-over-slf4j", version.ref = "slf4j" } |
31 | sonarqubeGradle = { group = "org.sonarsource.scanner.gradle", name = "sonarqube-gradle-plugin", version = "3.3" } | ||
31 | viatra = { group = "org.eclipse.viatra", name = "viatra-query-runtime", version = "2.6.0" } | 32 | viatra = { group = "org.eclipse.viatra", name = "viatra-query-runtime", version = "2.6.0" } |
32 | xtend-lib = { group = "org.eclipse.xtend", name = "org.eclipse.xtend.lib", version.ref = "xtext" } | 33 | xtend-lib = { group = "org.eclipse.xtend", name = "org.eclipse.xtend.lib", version.ref = "xtext" } |
34 | xtendGradle = { group = "org.xtext", name = "xtext-gradle-plugin", version = "3.0.0" } | ||
33 | xtext-bom = { group = "org.eclipse.xtext", name = "xtext-dev-bom", version.ref = "xtext" } | 35 | xtext-bom = { group = "org.eclipse.xtext", name = "xtext-dev-bom", version.ref = "xtext" } |
34 | xtext-core = { group = "org.eclipse.xtext", name = "org.eclipse.xtext", version.ref = "xtext" } | 36 | xtext-core = { group = "org.eclipse.xtext", name = "org.eclipse.xtext", version.ref = "xtext" } |
35 | xtext-generator-antlr = { group = "org.eclipse.xtext", name = "xtext-antlr-generator", version = "2.1.1" } | 37 | xtext-generator-antlr = { group = "org.eclipse.xtext", name = "xtext-antlr-generator", version = "2.1.1" } |
@@ -43,5 +45,3 @@ xtext-xbase-ide = { group = "org.eclipse.xtext", name = "org.eclipse.xtext.xbase | |||
43 | [plugins] | 45 | [plugins] |
44 | shadow = { id = "com.github.johnrengelman.shadow", version = "7.1.0" } | 46 | shadow = { id = "com.github.johnrengelman.shadow", version = "7.1.0" } |
45 | frontend = { id = "org.siouan.frontend-jdk11", version = "5.3.0" } | 47 | frontend = { id = "org.siouan.frontend-jdk11", version = "5.3.0" } |
46 | sonarqube = { id = "org.sonarqube", version = "3.3" } | ||
47 | xtend = { id = "org.xtext.xtend", version = "3.0.0-M1" } | ||
diff --git a/language-ide/build.gradle b/language-ide/build.gradle index 65b4b786..91f21109 100644 --- a/language-ide/build.gradle +++ b/language-ide/build.gradle | |||
@@ -1,5 +1,7 @@ | |||
1 | apply plugin: 'java-library' | 1 | plugins { |
2 | apply from: "${rootDir}/gradle/xtext-common.gradle" | 2 | id 'java-library' |
3 | id 'tools.refinery.xtext-conventions' | ||
4 | } | ||
3 | 5 | ||
4 | dependencies { | 6 | dependencies { |
5 | api project(':refinery-language') | 7 | api project(':refinery-language') |
diff --git a/language-model/build.gradle b/language-model/build.gradle index 666b3e7d..0add85d9 100644 --- a/language-model/build.gradle +++ b/language-model/build.gradle | |||
@@ -1,7 +1,9 @@ | |||
1 | apply plugin: 'java-library' | 1 | plugins { |
2 | apply plugin: 'java-test-fixtures' | 2 | id 'java-library' |
3 | apply from: "${rootDir}/gradle/java-common.gradle" | 3 | id 'java-test-fixtures' |
4 | apply from: "${rootDir}/gradle/mwe2.gradle" | 4 | id 'tools.refinery.java-conventions' |
5 | id 'tools.refinery.mwe2-conventions' | ||
6 | } | ||
5 | 7 | ||
6 | dependencies { | 8 | dependencies { |
7 | api libs.ecore | 9 | api libs.ecore |
diff --git a/language-to-store/build.gradle b/language-to-store/build.gradle index e0fd8212..ea7969b1 100644 --- a/language-to-store/build.gradle +++ b/language-to-store/build.gradle | |||
@@ -1,7 +1,9 @@ | |||
1 | apply plugin: 'java-library' | 1 | plugins { |
2 | apply from: "${rootDir}/gradle/java-common.gradle" | 2 | id 'java-library' |
3 | apply from: "${rootDir}/gradle/junit.gradle" | 3 | id 'tools.refinery.java-conventions' |
4 | apply from: "${rootDir}/gradle/xtend.gradle" | 4 | id 'tools.refinery.junit-conventions' |
5 | id 'tools.refinery.xtend-conventions' | ||
6 | } | ||
5 | 7 | ||
6 | dependencies { | 8 | dependencies { |
7 | api project(':refinery-language-model') | 9 | api project(':refinery-language-model') |
diff --git a/language-web/build.gradle b/language-web/build.gradle index 12f2f3a0..1bacd35c 100644 --- a/language-web/build.gradle +++ b/language-web/build.gradle | |||
@@ -1,6 +1,13 @@ | |||
1 | apply plugin: 'java' | 1 | plugins { |
2 | apply from: "${rootDir}/gradle/xtext-common.gradle" | 2 | id 'java' |
3 | apply from: "${rootDir}/gradle/junit.gradle" | 3 | id 'application' |
4 | alias libs.plugins.frontend | ||
5 | alias libs.plugins.shadow | ||
6 | id 'tools.refinery.xtext-conventions' | ||
7 | id 'tools.refinery.junit-conventions' | ||
8 | } | ||
9 | |||
10 | import org.siouan.frontendgradleplugin.infrastructure.gradle.RunNpmYarn | ||
4 | 11 | ||
5 | dependencies { | 12 | dependencies { |
6 | implementation project(':refinery-language') | 13 | implementation project(':refinery-language') |
@@ -27,10 +34,6 @@ for (taskName in ['compileJava', 'processResources']) { | |||
27 | def webpackOutputDir = "${buildDir}/webpack" | 34 | def webpackOutputDir = "${buildDir}/webpack" |
28 | def productionResources = "${webpackOutputDir}/production" | 35 | def productionResources = "${webpackOutputDir}/production" |
29 | def serverMainClass = 'tools.refinery.language.web.ServerLauncher' | 36 | def serverMainClass = 'tools.refinery.language.web.ServerLauncher' |
30 | |||
31 | apply plugin: libs.plugins.frontend.get().pluginId | ||
32 | import org.siouan.frontendgradleplugin.infrastructure.gradle.RunNpmYarn | ||
33 | |||
34 | def nodeDirectory = "${rootDir}/.gradle/node" | 37 | def nodeDirectory = "${rootDir}/.gradle/node" |
35 | 38 | ||
36 | frontend { | 39 | frontend { |
@@ -104,12 +107,10 @@ tasks.named('jar') { | |||
104 | } | 107 | } |
105 | } | 108 | } |
106 | 109 | ||
107 | apply plugin: 'application' | ||
108 | mainClassName = serverMainClass | 110 | mainClassName = serverMainClass |
109 | distTar.enabled = false | 111 | distTar.enabled = false |
110 | distZip.enabled = false | 112 | distZip.enabled = false |
111 | 113 | ||
112 | apply plugin: libs.plugins.shadow.get().pluginId | ||
113 | shadowDistTar.enabled = false | 114 | shadowDistTar.enabled = false |
114 | shadowDistZip.enabled = false | 115 | shadowDistZip.enabled = false |
115 | 116 | ||
diff --git a/language/build.gradle b/language/build.gradle index df71a85d..5eb5484d 100644 --- a/language/build.gradle +++ b/language/build.gradle | |||
@@ -1,9 +1,11 @@ | |||
1 | apply plugin: 'java-library' | 1 | plugins { |
2 | apply plugin: 'java-test-fixtures' | 2 | id 'java-library' |
3 | apply from: "${rootDir}/gradle/xtext-common.gradle" | 3 | id 'java-test-fixtures' |
4 | apply from: "${rootDir}/gradle/junit.gradle" | 4 | id 'tools.refinery.xtext-conventions' |
5 | apply from: "${rootDir}/gradle/mwe2.gradle" | 5 | id 'tools.refinery.junit-conventions' |
6 | apply from: "${rootDir}/gradle/xtend.gradle" | 6 | id 'tools.refinery.mwe2-conventions' |
7 | id 'tools.refinery.xtend-conventions' | ||
8 | } | ||
7 | 9 | ||
8 | dependencies { | 10 | dependencies { |
9 | api platform(libs.xtext.bom) | 11 | api platform(libs.xtext.bom) |
diff --git a/store/build.gradle b/store/build.gradle index 0a5ba549..555c57be 100644 --- a/store/build.gradle +++ b/store/build.gradle | |||
@@ -1,7 +1,9 @@ | |||
1 | apply plugin: 'java-library' | 1 | plugins { |
2 | apply from: "${rootDir}/gradle/java-common.gradle" | 2 | id 'java-library' |
3 | apply from: "${rootDir}/gradle/junit.gradle" | 3 | id 'tools.refinery.java-conventions' |
4 | apply from: "${rootDir}/gradle/jmh.gradle" | 4 | id 'tools.refinery.junit-conventions' |
5 | id 'tools.refinery.jmh-conventions' | ||
6 | } | ||
5 | 7 | ||
6 | dependencies { | 8 | dependencies { |
7 | implementation libs.ecore | 9 | implementation libs.ecore |