build.gradle 3.89 KB
Newer Older
Gradl, Tobias's avatar
Gradl, Tobias committed
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
allprojects {
    apply plugin: "maven-publish"
    apply plugin: "eclipse"

    group = 'eu.dariah.de'
    version = '2.0.0-DEV'

    repositories {
        mavenLocal()
        maven {
            url = 'https://minfba.de.dariah.eu/nexus/repository/minfba-central/'
        }
    }

    ext {
        jupiterVersion = "5.7.0"
        slf4jVersion = "1.7.30"
        logbackVersion = "1.2.3"

        librarySets = [
            commonTest: [
            	"org.junit.jupiter:junit-jupiter-engine:$jupiterVersion",
				"org.junit.jupiter:junit-jupiter-api:$jupiterVersion",
				"org.junit.jupiter:junit-jupiter-params:$jupiterVersion",
				"org.slf4j:slf4j-api:$slf4jVersion",
                "org.slf4j:jcl-over-slf4j:$slf4jVersion",
                "org.slf4j:log4j-over-slf4j:$slf4jVersion",
    			"ch.qos.logback:logback-core:$logbackVersion",
    			"ch.qos.logback:logback-classic:$logbackVersion",
            ]
        ]
    }

    publishing {
        publications {
            maven(MavenPublication) {
                pom {
                    name = 'DARIAHSP'
                    url = 'https://gitlab.rz.uni-bamberg.de/dariah/dariahsp'
                    licenses {
                        license {
                            name = 'The Apache License, Version 2.0'
                            url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                        }
                    }
                    developers {
                        developer {
                            id = 'tgradl'
                            name = 'Tobias Gradl'
                            email = 'tobias.gradl@uni-bamberg.de'
                        }
                    }
                    scm {
                        connection = 'scm:git:git://gitlab.rz.uni-bamberg.de/dariah/dariahsp.git'
                        developerConnection = 'scm:git:ssh://gitlab.rz.uni-bamberg.de/dariah/dariahsp.git'
                        url = 'https://gitlab.rz.uni-bamberg.de/dariah/dariahsp/'
                    }
                    issueManagement {
                        system = 'GitLab'
                        url = 'https://gitlab.rz.uni-bamberg.de/dariah/dariahsp/issues'
                    }
                }
            }
        }
        repositories {
            maven {
                def releasesRepoUrl = "https://minfba.de.dariah.eu/nexus/repository/minfba-releases/"
                def snapshotsRepoUrl = "https://minfba.de.dariah.eu/nexus/repository/minfba-snapshots/"
                
                if (version.endsWith('SNAPSHOT') || version.endsWith('RELEASE')) {
                    credentials {
                        username project.hasProperty('nexususer') ? project.getProperty('nexususer') : ''
                        password project.hasProperty('nexuspass') ? project.getProperty('nexuspass') : ''
                    }
                    url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl
                } else {
                    // Have a local test repo under buildDir to be able to test publish but only actually do publish when the version ending matches
                    url = "$buildDir/repo/"
                }
            }
        }
    }
}

subprojects {
    apply plugin: "java"

    java {
Gradl, Tobias's avatar
Gradl, Tobias committed
89
        sourceCompatibility = JavaVersion.VERSION_11
Gradl, Tobias's avatar
Gradl, Tobias committed
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
    }

    tasks.withType(JavaCompile) {
        options.encoding = 'UTF-8'
    }

    task sourcesJar(type: Jar, dependsOn: classes) {
        classifier = 'sources'
        from sourceSets.main.allSource
    }

    task javadocJar(type: Jar, dependsOn: javadoc) {
        classifier = 'javadoc'
        from javadoc.destinationDir
    }

    artifacts {
        archives sourcesJar
        archives javadocJar
    }

    publishing {
        publications {
            maven(MavenPublication) {
                from(components.java)
                artifact(sourcesJar) {}
                artifact(javadocJar) {}
            }
        }
    }
}