2dc31a16d7
- Jenkinsfile 수정: sourceBundle 빌드/아티팩트 보관 적용 - README 갱신: sourceBundle 사용법 추가
96 lines
2.9 KiB
Groovy
96 lines
2.9 KiB
Groovy
plugins {
|
|
id 'java-library'
|
|
}
|
|
|
|
group = 'com.eactive.ext.djb'
|
|
version = '1.0.0'
|
|
|
|
java {
|
|
toolchain {
|
|
languageVersion = JavaLanguageVersion.of(8)
|
|
}
|
|
}
|
|
|
|
sourceSets {
|
|
stub {
|
|
java {
|
|
srcDirs = ['src/stub/java']
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
// scpdb 가짜 시그니처. 메인 컴파일 통과 전용. 최종 jar 에는 포함되지 않음.
|
|
compileOnly sourceSets.stub.output
|
|
}
|
|
|
|
tasks.withType(JavaCompile).configureEach {
|
|
options.encoding = 'UTF-8'
|
|
}
|
|
|
|
jar {
|
|
archiveBaseName = 'damo-manager'
|
|
archiveVersion = ''
|
|
manifest {
|
|
attributes(
|
|
'Implementation-Title' : 'damo-manager',
|
|
'Implementation-Version': project.version,
|
|
'Built-By' : 'damo-manager gradle build',
|
|
'Main-Class' : 'com.eactive.ext.djb.DamoCli'
|
|
)
|
|
}
|
|
}
|
|
|
|
// Fake 모드 스모크 검증용 (-Ddamo-manager.enabled=true + scpdb 부재). 실행: gradle runFakeSmoke
|
|
tasks.register('runFakeSmoke', JavaExec) {
|
|
group = 'verification'
|
|
description = 'Run DamoManager main() with -Ddamo-manager.enabled=true and no scpdb (fake mode smoke test)'
|
|
classpath = sourceSets.main.runtimeClasspath
|
|
mainClass = 'com.eactive.ext.djb.DamoManager'
|
|
systemProperty 'damo-manager.enabled', 'true'
|
|
dependsOn 'classes'
|
|
}
|
|
|
|
// Bypass 모드 스모크 검증용 (기본값, 옵션 없음). 실행: gradle runBypassSmoke
|
|
tasks.register('runBypassSmoke', JavaExec) {
|
|
group = 'verification'
|
|
description = 'Run DamoManager main() with no option (default bypass mode smoke test)'
|
|
classpath = sourceSets.main.runtimeClasspath
|
|
mainClass = 'com.eactive.ext.djb.DamoManager'
|
|
dependsOn 'classes'
|
|
}
|
|
|
|
// 내부망 반입용 소스 번들. 실행: gradle sourceBundle
|
|
// jar 첨부가 메일 서버에서 차단되므로 소스 + JDK 전용 빌드 스크립트를 zip 으로 패키징한다.
|
|
// 내부망에서는 JDK 만으로 빌드 가능 (scripts/BUILD-INTERNAL.md 참고).
|
|
def bundleVersionFile = layout.buildDirectory.file('tmp/sourceBundle/VERSION')
|
|
|
|
tasks.register('writeBundleVersion') {
|
|
def v = project.version.toString()
|
|
outputs.file bundleVersionFile
|
|
doLast {
|
|
bundleVersionFile.get().asFile.text = v + '\n'
|
|
}
|
|
}
|
|
|
|
tasks.register('sourceBundle', Zip) {
|
|
group = 'distribution'
|
|
description = 'Package sources + JDK-only build scripts into a zip for air-gapped internal build'
|
|
dependsOn 'writeBundleVersion'
|
|
archiveBaseName = 'damo-manager-src'
|
|
archiveVersion = project.version
|
|
destinationDirectory = layout.buildDirectory.dir('distributions')
|
|
into "damo-manager-src-${project.version}"
|
|
from(projectDir) {
|
|
include 'src/**', 'build.gradle', 'settings.gradle', 'README.md'
|
|
}
|
|
from bundleVersionFile
|
|
from('scripts') {
|
|
include 'BUILD-INTERNAL.md', 'build-internal.bat'
|
|
}
|
|
from('scripts') {
|
|
include 'build-internal.sh'
|
|
filePermissions { unix('0755') }
|
|
}
|
|
}
|