-
Notifications
You must be signed in to change notification settings - Fork 422
/
build.gradle
90 lines (82 loc) · 3.31 KB
/
build.gradle
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
description 'Java, Groovy and Kotlin examples for the picocli project.'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.8.21"
}
}
apply plugin: 'groovy'
apply plugin: 'kotlin'
apply plugin: 'scala'
apply plugin: 'java-library'
sourceCompatibility = 1.8 // for the JSR-380 BeanValidation example
targetCompatibility = 1.8
configurations {
ivy
}
dependencies {
api rootProject
api project(':picocli-groovy')
api supportDependencies.kotlin_stdlib
api supportDependencies.scala_lang
ivy supportDependencies.ivy // for Intelli/J
implementation supportDependencies.groovy,
supportDependencies.ivy, // for Intelli/J
// for the Logging example
supportDependencies.log4j2api,
supportDependencies.log4j2core,
// for the JSR-380 BeanValidation example
supportDependencies.validation_api,
supportDependencies.hibernate_validator,
supportDependencies.hibernate_validator_annproc,
//supportDependencies.el_api,
supportDependencies.el_impl,
supportDependencies.kotlin_script_runtime
}
tasks.withType(GroovyCompile) {
// this, and the `configurations {ivy}` section, are a workaround for the dreaded
// java.lang.NoClassDefFoundError: org/apache/ivy/core/report/ResolveReport
// that occurs when trying to compile a groovy script containing a @Grab annotation in gradle.
// see https://stackoverflow.com/questions/18173908/error-compiling-a-groovy-project-using-grab-annotation
groovyClasspath += configurations.ivy
}
def generatedResources = "$buildDir/generated-resources/main"
sourceSets {
main {
//register an output folder on the main SourceSet:
output.dir(generatedResources, builtBy: 'generateVersionTxt')
//it is now a part of the 'main' classpath and will be a part of the jar
}
}
//a task that generates the resources for the example VersionProviderDemo1:
task generateVersionTxt {
description 'Creates a version.txt file with build info that is added to the root of the picocli-examples jar'
def generated = new File(generatedResources, "version.txt")
outputs.file(generated)
doLast {
new File(generatedResources).mkdirs()
generated.text = """
Version: $rootProject.version
Buildtime: ${new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date())}
Application-name: $rootProject.name $project.name
"""
}
}
normalization {
runtimeClasspath {
properties('**/version.txt') {
ignoreProperty 'Buildtime'
}
}
}
tasks.withType(Javadoc).all { enabled = false }
//tasks.withType(Javadoc) {
// options.addBooleanOption('Xdoclint:none', true)
//}
//tasks.withType(JavaCompile) {
// options.compilerArgs << '-Xlint:unchecked' << '-Xlint:deprecation' <<
// '-processorpath' << 'C:\\Users\\remko\\IdeaProjects\\picocli3\\picocli-codegen\\build\\libs\\picocli-codegen-4.0.0-SNAPSHOT.jar;C:\\Users\\remko\\IdeaProjects\\picocli3\\build\\libs\\picocli-4.0.0-SNAPSHOT.jar' <<
// '-processor' << 'picocli.codegen.annotation.processing.AnnotatedCommandSourceGeneratorProcessor'
//}