/
build.gradle
96 lines (79 loc) · 2.44 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
91
92
93
94
95
96
plugins {
id 'java'
id 'war'
id 'application'
id 'scala'
id 'com.bmuschko.docker-remote-api' version '3.6.1'
}
import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage
project.ext.dockerGroup = 'yubico'
project.ext.dockerName = project.name
description = 'WebAuthn demo'
configurations {
forJdk10
}
dependencies {
implementation(
project(':webauthn-server-attestation'),
project(':webauthn-server-core'),
project(':yubico-util'),
addVersion('com.google.guava:guava'),
addVersion('com.fasterxml.jackson.core:jackson-databind'),
addVersion('com.upokecenter:cbor'),
addVersion('javax.ws.rs:javax.ws.rs-api'),
addVersion('org.eclipse.jetty:jetty-server'),
addVersion('org.eclipse.jetty:jetty-servlet'),
addVersion('org.glassfish.jersey.containers:jersey-container-servlet-core'),
addVersion('org.slf4j:slf4j-api'),
)
forJdk10(
addVersion('javax.activation:activation'),
addVersion('javax.xml.bind:jaxb-api'),
)
runtimeOnly(
configurations.forJdk10,
addVersion('ch.qos.logback:logback-classic'),
addVersion('org.glassfish.jersey.containers:jersey-container-servlet'),
addVersion('org.glassfish.jersey.inject:jersey-hk2'),
)
testImplementation(
project(':yubico-util-scala'),
testFixtures(project(':webauthn-server-core')),
addVersion('junit:junit'),
addVersion('org.mockito:mockito-core'),
addVersion('org.scala-lang:scala-library'),
addVersion('org.scalacheck:scalacheck_2.13'),
addVersion('org.scalatest:scalatest_2.13'),
)
modules {
module('javax.servlet:servlet-api') {
replacedBy('javax.servlet:javax.servlet-api')
}
}
}
mainClassName = 'demo.webauthn.EmbeddedServer'
[installDist, distZip, distTar].each { task ->
def intoDir = (task == installDist) ? "/" : "${project.name}-${project.version}"
task.into(intoDir) {
from 'keystore.jks'
from('src/main/webapp') {
into 'src/main/webapp'
}
}
}
task dockerPrepare(type: Sync) {
from file('docker')
from file('keystore.jks')
from(war.outputs) {
rename ~/${war.baseName}.*\.${war.extension}/, "${war.baseName}.${war.extension}"
}
into file("${project.buildDir}/docker")
}
task dockerBuild(type: DockerBuildImage) {
inputs.files dockerPrepare.outputs.files
inputDir = dockerPrepare.destinationDir
tags = [
"${project.dockerGroup}/${project.dockerName}:${project.version}",
"${project.dockerGroup}/${project.dockerName}:latest",
]
}