0% found this document useful (0 votes)
3 views12 pages

Gradle Build Script for Docker Java App

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views12 pages

Gradle Build Script for Docker Java App

Copyright
© All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

import [Link].

ReplaceTokens

apply plugin: 'base'


apply plugin: 'maven-publish'

def contextDir = "${buildDir}/${[Link]}/"

def imageRepositories = [

plugins {
import [Link]
import [Link]
import [Link]
import [Link]

apply plugin: 'base'


apply plugin: '[Link]-java-application'

def contextDir = "${buildDir}/context/service"

def dockerBuildArgs = [
'http_proxy' : "[Link]
'https_proxy': "[Link]
'no_proxy' : "*.[Link]|*.[Link]|*.[Link]"
]

def imageRepositories = [
plugins {
id '[Link]' version '6.2.0' apply false
id 'base'
id 'java'
id 'application'
id '[Link]' version '0.6.0'
id 'maven-publish'
id '[Link]-java-application' version '9.3.2' apply false
}
group = '[Link]'

sourceCompatibility = '17'

apply from: 'gradle/[Link]'

repositories {
mavenCentral()
maven { url '[Link] }
maven { url '[Link]
cache' }
maven { url '[Link] }
maven { url '[Link]
cache' }
maven { url "[Link]
local" }
maven { url "[Link]
local" }
maven { url '[Link] }
maven {url "[Link]
{connectionClientRepo}/fcc-studio"}
maven { url "[Link] }
maven { url '[Link] } // 3rd
parties
maven { url '[Link]
helidon/' }

}
mainClassName = '[Link]'
//mainClassName = '[Link]'
def fccmRepositories = [
sandbox: [
maven : '[Link]/fccm-sandbox/',
docker: '[Link]'
],
dev : [
maven : '[Link]/fccm-dev/',
docker: '[Link]'
],
staging: [
maven : '[Link]/fccm-staging/',
docker: '[Link]'
],
release: [
maven : '[Link]/fccm-release/',
docker: '[Link]'
]
]
ext {
fccmMavenRepository = fccmRepositories[almBuildTarget].maven
fccmDockerRepository = fccmRepositories[almBuildTarget].docker
fccmMavenRepositoryUrl = "[Link]
helidonversion = '3.2.6'
mainClass='[Link]'
//mainClass='[Link]'
}

dependencies {

// properties from spring service

implementation group: '[Link]', name: 'crr-common-helidon',


version: [Link], ext: 'jar'

implementation group: '[Link]', name: 'snakeyaml', version: [Link]


implementation group: 'commons-fileupload', name: 'commons-fileupload', version:
[Link]
implementation group: '[Link]', name: 'libthrift', version:
[Link]
implementation group: '[Link]', name: 'okio', version: [Link]

// new properties
implementation group: '[Link]', name: '[Link]-api', version:
'6.1.0'

implementation group: '[Link]', name: 'jep', version: [Link]


implementation group: '[Link]', name: 'connectionClient', version:
[Link]

// import Helidon BOM


implementation enforcedPlatform("[Link]:helidon-dependencies:$
{[Link]}")
implementation '[Link]:helidon-microprofile'

implementation '[Link]:helidon-webclient'

implementation '[Link]:jandex'
implementation '[Link]:[Link]-api'

testImplementation '[Link]:helidon-microprofile-tests-
junit5'
testImplementation '[Link]:junit-jupiter-api'
testRuntimeOnly '[Link]:junit-jupiter-engine'

implementation 'org.slf4j:slf4j-api:2.0.0-alpha1'
implementation group: 'org.slf4j', name: 'slf4j-jdk14', version: '2.1.0-alpha1'

// Jakarta Annotation API


implementation '[Link]:[Link]-api:2.1.1' // Adjust
version if needed

// Jakarta CDI (Contexts and Dependency Injection) API


implementation '[Link]:[Link]-api:3.0.1' // Adjust
version if needed

implementation '[Link]:[Link]-api:2.0.1'
// Jakarta Inject API
implementation '[Link]:[Link]-api:2.0.1' // Adjust version if
needed

// Jakarta RESTful Web Services API (JAX-RS)


implementation '[Link]:[Link]-api' // Adjust version if needed

// Jakarta Persistence API (JPA)


implementation '[Link]:[Link]-api:3.1.0' // Adjust
version if needed

implementation '[Link]:[Link]-api'
implementation '[Link]:hibernate-validator'
implementation '[Link]:[Link]' // Adjust version
// Needed for Database entitymanager and datasource
implementation '[Link]:helidon-integrations-cdi-jta-weld'
implementation '[Link]:helidon-integrations-cdi-jpa'
implementation '[Link]:helidon-integrations-cdi-hibernate'
implementation '[Link]:helidon-integrations-cdi-datasource-
hikaricp'
// apm starts
implementation '[Link]:apm-java-agent-tracer:1.8.3326'
implementation '[Link]:helidon-tracing-opentracing'
implementation '[Link]:helidon-microprofile-tracing'
implementation '[Link]:apm-java-agent-helidon3:1.8.3326'
//apm ends

//implementation group: '[Link]', name: 'helidon-media-


jackson', version: '1.4.14'
implementation group: '[Link]', name: 'helidon-media-jackson', version:
'3.2.5'
implementation '[Link]:jackson-databind:2.17.1' // Add the
appropriate version here
implementation '[Link]:jackson-core:2.17.1'
implementation group: '[Link]', name: 'jackson-
dataformat-yaml', version: '2.17.1'
implementation group: '[Link]', name: 'jersey-media-json-
jackson', version: '3.1.9'

// -----------------------------------
implementation group: '[Link]', name: 'json', version: [Link]
implementation group: '[Link]', name: 'ojdbc8', version:
[Link]
implementation group: '[Link]', name: 'oraclepki', version:
[Link]
implementation group: '[Link]', name: 'osdt_core', version:
[Link]
implementation group: '[Link]', name: 'osdt_cert', version:
[Link]

implementation group: '[Link]', name: 'commons-dbcp2', version:


versions.commonsdbcp2
implementation group: '[Link]', name: 'commons-text', version:
[Link]
implementation group: '[Link]', name: 'sane_adapter', version:
[Link]
implementation group: '[Link]', name: 'icu4j', version: versions.icu4j

implementation group: 'commons-codec', name: 'commons-codec', version:


[Link]

[Link] {
exclude group:"[Link]", module: "jersey-media-json-binding"
}

allprojects {
[Link](dependencyConflictResolutionStrategy)
task allDeps(type: DependencyReportTask) {}
}

[Link]('distTar') {
duplicatesStrategy = [Link]
}
[Link]('distZip') {
duplicatesStrategy = [Link]
}

distZip {
archiveBaseName = [Link]
archiveFileName = "${[Link]}.zip"
if (production != 'on_premise') {
version = ""
into("${[Link]}") {
from 'src/main/dist/'
}
} else {
into("${[Link]}-${version}") {
from file("${[Link]}/src/main/dist/")
}
}
}

distTar {
archiveBaseName = [Link]
archiveFileName = "${[Link]}.tar"
if (production != 'on_premise') {
version = null
into("${[Link]}") {
from 'src/main/dist/'
}
} else {
into("${[Link]}-${version}") {
from file("${[Link]}/src/main/dist/")
}
}
}

publishing {
publications {
"OnPremise"(MavenPublication) {
artifact distZip
artifact distTar
artifact jar
artifactId "${[Link]}"
version version
groupId '[Link]'
}
}
repositories {
maven {
url = fccmMavenRepositoryUrl
credentials {
username repositoryUser
password repositoryPass
}
}
}
}

// default jar configuration


// set the main classpath
// add each jar under build/libs/libs into the classpath
jar {
archiveFileName = "${[Link]}.jar"
manifest {
attributes ('Main-Class': "${[Link]}" ,
'Class-Path': [Link] {
"libs/$[Link]" }.join(' ')
)
}
}

application {
mainClass = "${[Link]}"

startScripts {
doLast {
[Link] = [Link](
'CLASSPATH=',
'CLASSPATH=$APP_HOME:'
)
[Link] = [Link](
'DEFAULT_JVM_OPTS=""',
'DEFAULT_JVM_OPTS="-[Link]=$APP_HOME/conf/
[Link]"'
)
}
}

// This is a work-around for running unit tests.


// Gradle places resource files under ${buildDir}/resources. In order for
// [Link] to get picked up by CDI it must be co-located with the classes.
// So we move it before running tests.
// In either case it ends up AOK in the final jar artifact
task moveBeansXML {
doLast {
[Link] file: "${buildDir}/resources/main/META-INF/[Link]",
todir: "${buildDir}/classes/java/main/META-INF"
}
}

[Link] jandex
[Link] jandex
//[Link] moveBeansXML
[Link] moveBeansXML

apply from: 'gradle/[Link]'

task uploadArchives(dependsOn: publishOnPremisePublicationToMavenRepository)

plugins {
}
sourceCompatibility = '17'
apply from: 'gradle/[Link]'

repositories {
}
def fccmRepositories = [
]
ext {
}

dependencies {

// properties from spring service

implementation group: '[Link]', name: 'snakeyaml', version: [Link]


implementation group: 'commons-fileupload', name: 'commons-fileupload', version:
[Link]
implementation group: '[Link]', name: 'libthrift', version:
[Link]
implementation group: '[Link]', name: 'okio', version: [Link]

// new properties

implementation group: '[Link]', name: '[Link]-api', version:


'6.1.0'

implementation group: '[Link]', name: 'jep', version: [Link]

// import Helidon BOM


implementation enforcedPlatform("[Link]:helidon-dependencies:$
{[Link]}")
implementation '[Link]:helidon-microprofile'

implementation '[Link]:helidon-webclient'

implementation '[Link]:jandex'
implementation '[Link]:[Link]-api'

testImplementation '[Link]:helidon-microprofile-tests-
junit5'
testImplementation '[Link]:junit-jupiter-api'
testRuntimeOnly '[Link]:junit-jupiter-engine'

implementation 'org.slf4j:slf4j-api:2.0.0-alpha1'
implementation group: 'org.slf4j', name: 'slf4j-jdk14', version: '2.1.0-alpha1'

// Jakarta Annotation API


implementation '[Link]:[Link]-api:2.1.1' // Adjust
version if needed

// Jakarta CDI (Contexts and Dependency Injection) API


implementation '[Link]:[Link]-api:3.0.1' // Adjust
version if needed

implementation '[Link]:[Link]-api:2.0.1'
// Jakarta Inject API
implementation '[Link]:[Link]-api:2.0.1' // Adjust version if
needed

// Jakarta RESTful Web Services API (JAX-RS)


implementation '[Link]:[Link]-api' // Adjust version if needed

// Jakarta Persistence API (JPA)


implementation '[Link]:[Link]-api:3.1.0' // Adjust
version if needed

implementation '[Link]:[Link]-api'
implementation '[Link]:hibernate-validator'
implementation '[Link]:[Link]' // Adjust version
// Needed for Database entitymanager and datasource
implementation '[Link]:helidon-integrations-cdi-jta-weld'
implementation '[Link]:helidon-integrations-cdi-jpa'
implementation '[Link]:helidon-integrations-cdi-hibernate'
implementation '[Link]:helidon-integrations-cdi-datasource-
hikaricp'

// apm starts
implementation '[Link]:apm-java-agent-tracer:1.8.3326'
implementation '[Link]:helidon-tracing-opentracing'
implementation '[Link]:helidon-microprofile-tracing'
implementation '[Link]:apm-java-agent-helidon3:1.8.3326'
//apm ends

//implementation group: '[Link]', name: 'helidon-media-


jackson', version: '1.4.14'
implementation group: '[Link]', name: 'helidon-media-jackson', version:
'3.2.5'
implementation '[Link]:jackson-databind:2.17.1' // Add the
appropriate version here
implementation '[Link]:jackson-core:2.17.1'
implementation group: '[Link]', name: 'jackson-
dataformat-yaml', version: '2.17.1'
implementation group: '[Link]', name: 'jersey-media-json-
jackson', version: '3.1.9'

// -----------------------------------
implementation group: '[Link]', name: 'json', version: [Link]
implementation group: '[Link]', name: 'ojdbc8', version:
[Link]
implementation group: '[Link]', name: 'oraclepki', version:
[Link]
implementation group: '[Link]', name: 'osdt_core', version:
[Link]
implementation group: '[Link]', name: 'osdt_cert', version:
[Link]

implementation group: '[Link]', name: 'commons-dbcp2', version:


versions.commonsdbcp2
implementation group: '[Link]', name: 'commons-text', version:
[Link]
implementation group: '[Link]', name: 'icu4j', version: versions.icu4j
implementation group: 'commons-codec', name: 'commons-codec', version:
[Link]

[Link] {
exclude group:"[Link]", module: "jersey-media-json-binding"
}

allprojects {
[Link](dependencyConflictResolutionStrategy)
task allDeps(type: DependencyReportTask) {}
}

[Link]('distTar') {
duplicatesStrategy = [Link]
}

[Link]('distZip') {
duplicatesStrategy = [Link]
}

distZip {
archiveBaseName = [Link]
archiveFileName = "${[Link]}.zip"
if (production != 'on_premise') {
version = ""
into("${[Link]}") {
from 'src/main/dist/'
}
} else {
into("${[Link]}-${version}") {
from file("${[Link]}/src/main/dist/")
}
}
}

distTar {
archiveBaseName = [Link]
archiveFileName = "${[Link]}.tar"
if (production != 'on_premise') {
version = null
into("${[Link]}") {
from 'src/main/dist/'
}
} else {
into("${[Link]}-${version}") {
from file("${[Link]}/src/main/dist/")
}
}
}

publishing {
publications {
"OnPremise"(MavenPublication) {
artifact distZip
artifact distTar
artifact jar
artifactId "${[Link]}"
version version
groupId '[Link]'
}
}
repositories {
maven {
url = fccmMavenRepositoryUrl
credentials {
username repositoryUser
password repositoryPass
}
}
}
}

// default jar configuration


// set the main classpath
// add each jar under build/libs/libs into the classpath
jar {
archiveFileName = "${[Link]}.jar"
manifest {
attributes ('Main-Class': "${[Link]}" ,
'Class-Path': [Link] {
"libs/$[Link]" }.join(' ')
)
}
}

application {
mainClass = "${[Link]}"

startScripts {
doLast {
[Link] = [Link](
'CLASSPATH=',
'CLASSPATH=$APP_HOME:'
)
[Link] = [Link](
'DEFAULT_JVM_OPTS=""',
'DEFAULT_JVM_OPTS="-[Link]=$APP_HOME/conf/
[Link]"'
)
}
}

// This is a work-around for running unit tests.


// Gradle places resource files under ${buildDir}/resources. In order for
// [Link] to get picked up by CDI it must be co-located with the classes.
// So we move it before running tests.
// In either case it ends up AOK in the final jar artifact
task moveBeansXML {
doLast {
[Link] file: "${buildDir}/resources/main/META-INF/[Link]",
todir: "${buildDir}/classes/java/main/META-INF"
}
}

[Link] jandex
[Link] jandex
[Link] moveBeansXML
[Link] moveBeansXML

apply from: 'gradle/[Link]'

task uploadArchives(dependsOn: publishOnPremisePublicationToMavenRepository)

def fullServiceName = "${[Link]}"


def rootProjectName = [Link]

task prepareBuildContext( type: Sync) {

&& ![Link]('.ora') ) {
}

def serviceImageName = "$fccmDockerRepository/${imagePrefix}/${[Link]}:$


{[Link]}".toString()
def newImageName = [Link]()

task buildImage( type: DockerBuildImage,


dependsOn: prepareBuildContext) {
}

task pushImage( type: DockerPushImage, dependsOn: buildImage) {


}

id 'base'
id 'java'
id 'application'
id '[Link]' version '0.6.0'
id 'maven-publish'
id '[Link]-java-application' version '9.3.2' apply false
}

group = '[Link]'
sourceCompatibility = '17'
targetCompatibility = '17'
mainClassName = '[Link]'
apply from: 'gradle/[Link]'

repositories {
mavenCentral()
maven { url '[Link] }
maven { url '[Link]
cache' }
maven { url
'[Link] }
maven { url '[Link]
cache' }

ext {
}

[Link]=[Link]
# Change the following to true to enable the optional MicroProfile Metrics
[Link] metrics
[Link]=true
# Application properties. This is the default greeting
[Link].ofs_remote_user=ofs_remote_user
[Link]-language=accept-language
[Link]-pool-size=50
[Link]-pool-size=1000
[Link]-capacity=1000

You might also like