Matthias Andreas Benkard | 02e10f1 | 2020-02-02 18:46:56 +0100 | [diff] [blame] | 1 | import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage |
| 2 | import com.bmuschko.gradle.docker.tasks.image.DockerPushImage |
| 3 | |
Matthias Andreas Benkard | 4c5847b | 2020-01-12 15:42:02 +0100 | [diff] [blame] | 4 | plugins { |
Matthias Andreas Benkard | 4c5847b | 2020-01-12 15:42:02 +0100 | [diff] [blame] | 5 | id 'java' |
| 6 | id 'io.quarkus' |
Matthias Andreas Benkard | f7bf7c4 | 2020-01-28 22:31:12 +0100 | [diff] [blame] | 7 | id "com.bmuschko.docker-remote-api" version "${dockerPluginVersion}" |
Matthias Andreas Benkard | f611d9e | 2020-01-13 05:04:52 +0100 | [diff] [blame] | 8 | id "com.diffplug.gradle.spotless" version "${spotlessPluginVersion}" |
| 9 | id "com.github.ben-manes.versions" version "${versionsPluginVersion}" |
| 10 | id "se.patrikerdes.use-latest-versions" version "${useLatestVersionsPluginVersion}" |
Matthias Andreas Benkard | 4c5847b | 2020-01-12 15:42:02 +0100 | [diff] [blame] | 11 | } |
| 12 | |
Matthias Andreas Benkard | 513deee | 2020-01-12 20:58:56 +0100 | [diff] [blame] | 13 | sourceCompatibility = 11 |
| 14 | targetCompatibility = 11 |
| 15 | |
Matthias Andreas Benkard | 4c5847b | 2020-01-12 15:42:02 +0100 | [diff] [blame] | 16 | repositories { |
| 17 | mavenLocal() |
| 18 | mavenCentral() |
| 19 | } |
| 20 | |
Matthias Andreas Benkard | f611d9e | 2020-01-13 05:04:52 +0100 | [diff] [blame] | 21 | tasks { |
| 22 | dependencyUpdates { |
| 23 | checkConstraints = true |
| 24 | gradleReleaseChannel = "current" |
| 25 | revision = "release" |
| 26 | } |
| 27 | } |
| 28 | |
Matthias Andreas Benkard | 4c5847b | 2020-01-12 15:42:02 +0100 | [diff] [blame] | 29 | dependencies { |
| 30 | implementation enforcedPlatform("${quarkusPlatformGroupId}:${quarkusPlatformArtifactId}:${quarkusPlatformVersion}") |
| 31 | |
| 32 | implementation 'io.quarkus:quarkus-agroal' |
Matthias Andreas Benkard | c27d1cb | 2020-01-26 11:11:24 +0100 | [diff] [blame] | 33 | implementation 'io.quarkus:quarkus-elytron-security-properties-file' |
Matthias Andreas Benkard | 4c5847b | 2020-01-12 15:42:02 +0100 | [diff] [blame] | 34 | implementation 'io.quarkus:quarkus-flyway' |
| 35 | implementation 'io.quarkus:quarkus-hibernate-orm-panache' |
| 36 | implementation 'io.quarkus:quarkus-hibernate-validator' |
| 37 | implementation 'io.quarkus:quarkus-jdbc-postgresql' |
Matthias Andreas Benkard | 4c5847b | 2020-01-12 15:42:02 +0100 | [diff] [blame] | 38 | implementation 'io.quarkus:quarkus-kubernetes' |
| 39 | implementation 'io.quarkus:quarkus-mailer' |
Matthias Andreas Benkard | 24a2514 | 2020-01-24 13:25:54 +0100 | [diff] [blame] | 40 | implementation 'io.quarkus:quarkus-oidc' |
Matthias Andreas Benkard | 4c5847b | 2020-01-12 15:42:02 +0100 | [diff] [blame] | 41 | implementation 'io.quarkus:quarkus-resteasy' |
| 42 | implementation 'io.quarkus:quarkus-resteasy-jsonb' |
| 43 | implementation 'io.quarkus:quarkus-resteasy-qute' |
Matthias Andreas Benkard | 4c5847b | 2020-01-12 15:42:02 +0100 | [diff] [blame] | 44 | implementation 'io.quarkus:quarkus-scheduler' |
Matthias Andreas Benkard | 2a1383f | 2020-02-01 23:53:17 +0100 | [diff] [blame] | 45 | implementation 'io.quarkus:quarkus-smallrye-jwt' |
Matthias Andreas Benkard | e5f81e5 | 2020-01-18 12:48:40 +0100 | [diff] [blame] | 46 | |
| 47 | //implementation 'io.quarkus:quarkus-elytron-security' |
| 48 | //implementation 'io.quarkus:quarkus-elytron-security-jdbc' |
| 49 | //implementation 'io.quarkus:quarkus-elytron-security-oauth2' |
| 50 | //implementation 'io.quarkus:quarkus-keycloak-authorization' |
Matthias Andreas Benkard | e5f81e5 | 2020-01-18 12:48:40 +0100 | [diff] [blame] | 51 | //implementation 'io.quarkus:quarkus-quartz' |
Matthias Andreas Benkard | 4c5847b | 2020-01-12 15:42:02 +0100 | [diff] [blame] | 52 | //implementation 'io.quarkus:quarkus-smallrye-fault-tolerance' |
| 53 | //implementation 'io.quarkus:quarkus-smallrye-health' |
| 54 | //implementation 'io.quarkus:quarkus-smallrye-metrics' |
| 55 | //implementation 'io.quarkus:quarkus-smallrye-openapi' |
| 56 | |
| 57 | //implementation 'jakarta.transaction:jakarta.transaction-api' |
| 58 | //implementation 'org.jboss.spec.javax.xml.bind:jboss-jaxb-api_2.3_spec' |
| 59 | //implementation 'jakarta.persistence:jakarta.persistence-api' |
| 60 | |
Matthias Andreas Benkard | 2a1383f | 2020-02-01 23:53:17 +0100 | [diff] [blame] | 61 | implementation "org.bitbucket.b_c:jose4j" |
| 62 | |
Matthias Andreas Benkard | 5d71a9e | 2020-01-18 12:31:26 +0100 | [diff] [blame] | 63 | implementation 'org.mapstruct:mapstruct' |
| 64 | compileOnly 'org.mapstruct:mapstruct-processor' |
| 65 | |
| 66 | compileOnly 'com.google.code.findbugs:jsr305' |
| 67 | |
Matthias Andreas Benkard | f611d9e | 2020-01-13 05:04:52 +0100 | [diff] [blame] | 68 | implementation 'com.vladmihalcea:hibernate-types-52' |
Matthias Andreas Benkard | 4c5847b | 2020-01-12 15:42:02 +0100 | [diff] [blame] | 69 | |
Matthias Andreas Benkard | 5d71a9e | 2020-01-18 12:31:26 +0100 | [diff] [blame] | 70 | implementation "jakarta.security.jacc:jakarta.security.jacc-api" |
| 71 | implementation "net.java.dev.jna:jna" |
| 72 | |
Matthias Andreas Benkard | 4c5847b | 2020-01-12 15:42:02 +0100 | [diff] [blame] | 73 | testImplementation 'io.quarkus:quarkus-junit5' |
| 74 | testImplementation 'io.rest-assured:rest-assured' |
Matthias Andreas Benkard | f611d9e | 2020-01-13 05:04:52 +0100 | [diff] [blame] | 75 | |
Matthias Andreas Benkard | 4e29a24 | 2020-01-25 05:38:27 +0100 | [diff] [blame] | 76 | implementation 'org.jsoup:jsoup:1.12.1' |
| 77 | |
Matthias Andreas Benkard | f611d9e | 2020-01-13 05:04:52 +0100 | [diff] [blame] | 78 | constraints { |
Matthias Andreas Benkard | f611d9e | 2020-01-13 05:04:52 +0100 | [diff] [blame] | 79 | implementation "com.vladmihalcea:hibernate-types-52:${hibernateTypesVersion}" |
Matthias Andreas Benkard | 5d71a9e | 2020-01-18 12:31:26 +0100 | [diff] [blame] | 80 | implementation "org.mapstruct:mapstruct:${mapstructVersion}" |
| 81 | compileOnly "org.mapstruct:mapstruct-processor:${mapstructVersion}" |
| 82 | compileOnly "com.google.code.findbugs:jsr305:${findbugsJsr305Version}" |
| 83 | implementation "jakarta.security.jacc:jakarta.security.jacc-api:${jakartaJaccVersion}" |
| 84 | implementation "net.java.dev.jna:jna:${jnaVersion}" |
Matthias Andreas Benkard | 2a1383f | 2020-02-01 23:53:17 +0100 | [diff] [blame] | 85 | implementation "org.bitbucket.b_c:jose4j:${jose4jVersion}" |
Matthias Andreas Benkard | f611d9e | 2020-01-13 05:04:52 +0100 | [diff] [blame] | 86 | } |
Matthias Andreas Benkard | 4c5847b | 2020-01-12 15:42:02 +0100 | [diff] [blame] | 87 | } |
| 88 | |
| 89 | spotless { |
Matthias Andreas Benkard | 4be112f | 2020-01-12 20:29:38 +0100 | [diff] [blame] | 90 | java { |
| 91 | googleJavaFormat() |
| 92 | removeUnusedImports() |
| 93 | } |
Matthias Andreas Benkard | 4c5847b | 2020-01-12 15:42:02 +0100 | [diff] [blame] | 94 | } |
| 95 | |
Matthias Andreas Benkard | f7bf7c4 | 2020-01-28 22:31:12 +0100 | [diff] [blame] | 96 | group "eu.mulk" |
| 97 | version "${projectVersion}" |
Matthias Andreas Benkard | 2a10755 | 2020-01-23 10:47:52 +0100 | [diff] [blame] | 98 | |
| 99 | task yarnInstall(type:Exec) { |
Matthias Andreas Benkard | 02e10f1 | 2020-02-02 18:46:56 +0100 | [diff] [blame] | 100 | def resourceDir = "src/main/resources/META-INF/resources" |
| 101 | |
Matthias Andreas Benkard | c52eb74 | 2020-02-02 19:06:54 +0100 | [diff] [blame] | 102 | onlyIf { !project.hasProperty('skipWeb') } |
| 103 | |
Matthias Andreas Benkard | 02e10f1 | 2020-02-02 18:46:56 +0100 | [diff] [blame] | 104 | inputs.file "${resourceDir}/package.json" |
| 105 | outputs.dir "${resourceDir}/node_modules" |
| 106 | outputs.file "${resourceDir}/yarn.lock" |
| 107 | |
| 108 | workingDir resourceDir |
Matthias Andreas Benkard | 2a10755 | 2020-01-23 10:47:52 +0100 | [diff] [blame] | 109 | commandLine "yarn", "install" |
| 110 | } |
| 111 | |
| 112 | task snowpack(type:Exec) { |
Matthias Andreas Benkard | 02e10f1 | 2020-02-02 18:46:56 +0100 | [diff] [blame] | 113 | def resourceDir = "src/main/resources/META-INF/resources" |
| 114 | |
Matthias Andreas Benkard | c52eb74 | 2020-02-02 19:06:54 +0100 | [diff] [blame] | 115 | onlyIf { !project.hasProperty('skipWeb') } |
| 116 | |
Matthias Andreas Benkard | 2a10755 | 2020-01-23 10:47:52 +0100 | [diff] [blame] | 117 | dependsOn yarnInstall |
| 118 | |
Matthias Andreas Benkard | 02e10f1 | 2020-02-02 18:46:56 +0100 | [diff] [blame] | 119 | inputs.dir "${resourceDir}/node_modules" |
| 120 | inputs.file "${resourceDir}/yarn.lock" |
| 121 | inputs.file "${resourceDir}/package.json" |
| 122 | outputs.dir "${resourceDir}/web_modules" |
| 123 | |
| 124 | workingDir resourceDir |
Matthias Andreas Benkard | 2a10755 | 2020-01-23 10:47:52 +0100 | [diff] [blame] | 125 | commandLine "yarn", "run", "snowpack" |
| 126 | } |
| 127 | |
| 128 | task compileWeb { |
| 129 | dependsOn snowpack |
| 130 | |
| 131 | doLast {} |
| 132 | } |
| 133 | |
Matthias Andreas Benkard | b712a01 | 2020-01-26 08:10:49 +0100 | [diff] [blame] | 134 | processResources { |
| 135 | exclude("META-INF/resources/node_modules/**/*") |
Matthias Andreas Benkard | 97130f9 | 2020-01-27 21:03:39 +0100 | [diff] [blame] | 136 | exclude("META-INF/resources/package.json") |
| 137 | exclude("META-INF/resources/yarn.lock") |
Matthias Andreas Benkard | b712a01 | 2020-01-26 08:10:49 +0100 | [diff] [blame] | 138 | } |
| 139 | |
Matthias Andreas Benkard | b428e52 | 2020-01-26 08:13:04 +0100 | [diff] [blame] | 140 | quarkusBuild.dependsOn compileWeb |
Matthias Andreas Benkard | f7bf7c4 | 2020-01-28 22:31:12 +0100 | [diff] [blame] | 141 | |
Matthias Andreas Benkard | 02e10f1 | 2020-02-02 18:46:56 +0100 | [diff] [blame] | 142 | task buildDocker(type: DockerBuildImage) { |
Matthias Andreas Benkard | c52eb74 | 2020-02-02 19:06:54 +0100 | [diff] [blame] | 143 | onlyIf { !project.hasProperty('skipDocker') } |
| 144 | |
Matthias Andreas Benkard | f7bf7c4 | 2020-01-28 22:31:12 +0100 | [diff] [blame] | 145 | inputDir = file(".") |
| 146 | dockerFile = file("src/main/docker/Dockerfile.jvm") |
| 147 | images.add("docker.benkard.de/mulk/mulkcms2:${projectVersion}") |
| 148 | } |
| 149 | |
| 150 | buildDocker.dependsOn quarkusBuild |
| 151 | assemble.dependsOn buildDocker |
| 152 | |
Matthias Andreas Benkard | 02e10f1 | 2020-02-02 18:46:56 +0100 | [diff] [blame] | 153 | task pushDocker(type: DockerPushImage) { |
Matthias Andreas Benkard | f7bf7c4 | 2020-01-28 22:31:12 +0100 | [diff] [blame] | 154 | images.add("docker.benkard.de/mulk/mulkcms2:${projectVersion}") |
| 155 | } |
| 156 | |
| 157 | pushDocker.dependsOn buildDocker |