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