-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbuild.gradle
More file actions
110 lines (90 loc) · 2.86 KB
/
build.gradle
File metadata and controls
110 lines (90 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
/* (c) https://github.com/MontiCore/monticore */
plugins {
id "java"
id "de.monticore.generator" version "$mc_version" // MontiCore Plugin
id "maven-publish"
id "com.gradleup.shadow" version "$shadow_plugin_version"
id "io.github.themrmilchmann.ecj" version "0.2.0"
}
group = "de.monticore.lang"
version = mc_version
description = "Use Case Diagram DSL"
sourceCompatibility = JavaVersion.VERSION_21;
dependencies {
grammar ("de.monticore:monticore-grammar:$mc_version")
implementation "commons-cli:commons-cli:$commons_cli_version"
testImplementation "de.monticore:monticore-generator:$mc_version"
testImplementation "org.junit.jupiter:junit-jupiter-api:$junit_version"
testImplementation "org.junit.jupiter:junit-jupiter-params:$junit_version"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junit_version"
testRuntimeOnly "org.junit.platform:junit-platform-launcher:$junit_version"
}
// has to be placed directly under the dependency definition, since otherwise the grammar configurations are not found
repositories {
if(("true").equals(getProperty('useLocalRepo'))){
mavenLocal()
}
maven {
credentials.username mavenUser
credentials.password mavenPassword
url repo
}
}
// configure non-standard source sets
layout.buildDirectory = layout.projectDirectory.dir("target")
ecj {
compilerVersion = "3.44.0"
}
java {
toolchain {
languageVersion = JavaLanguageVersion.of(21)
}
withSourcesJar()
withJavadocJar()
}
// generated java doc contains errors, disable for now
javadoc.failOnError(false)
shadowJar {
archiveFileName = 'MCUCD.jar'
archiveClassifier = "mc-tool"
manifest {
attributes('Main-Class': 'ucd.UCDTool')
}
}
jar.dependsOn(shadowJar)
test {
useJUnitPlatform()
}
// configure deployment
publishing {
// configure what artifacts to publish
publications {
mavenJava(MavenPublication) {
artifactId = "$project.name"
from components.java
}
}
repositories.maven {
credentials.username mavenUser
credentials.password mavenPassword
def releasesRepoUrl = "https://nexus.se.rwth-aachen.de/content/repositories/monticore-releases/"
def snapshotsRepoUrl = "https://nexus.se.rwth-aachen.de/content/repositories/monticore-snapshots/"
url = version.endsWith("SNAPSHOT") ? snapshotsRepoUrl : releasesRepoUrl
}
}
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
// todo: reactivate this plugin when new version compatible to gradle 6.0.1 is available
//visteg {
// destination = 'target/reports/visteg.dot'
//}
task testReport(type: TestReport) {
destinationDir = file("$buildDir/reports/allTests")
// Include the results from the 'test' task
reportOn tasks.withType(Test)
}
task buildAll(type: GradleBuild) {
tasks = [ 'build' ]
}
defaultTasks 'build'