Files
djb-damo-manager/build.gradle
T
Rinjae 2dc31a16d7 - sourceBundle Gradle task 추가: 내부망 소스 번들 빌드 지원
- Jenkinsfile 수정: sourceBundle 빌드/아티팩트 보관 적용
- README 갱신: sourceBundle 사용법 추가
2026-07-24 14:21:42 +09:00

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') }
}
}