문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
gradle:java [2015/12/02 22:45] kwon37xi [컴파일 옵션들] |
gradle:java [2022/06/30 16:36] (현재) kwon37xi [Test 완료후에 실패건이 있는지 마킹만 하기] |
||
---|---|---|---|
줄 39: | 줄 39: | ||
// 소스 인코딩 지정방법 1 | // 소스 인코딩 지정방법 1 | ||
- | [compileJava, | + | [compileJava, |
// 소스 인코딩 지정밥법 2 | // 소스 인코딩 지정밥법 2 | ||
- | tasks.withType(Compile) { | + | tasks.withType(JavaCompile) { |
+ | options.encoding = ' | ||
+ | } | ||
+ | javadoc | ||
options.encoding = ' | options.encoding = ' | ||
} | } | ||
줄 62: | 줄 65: | ||
* 빌드 결과 : '' | * 빌드 결과 : '' | ||
* '' | * '' | ||
+ | * '' | ||
===== 기본 태스크 ===== | ===== 기본 태스크 ===== | ||
* '' | * '' | ||
줄 269: | 줄 272: | ||
|title | String | 프로젝트 이름과 버전 | | |title | String | 프로젝트 이름과 버전 | | ||
* [[http:// | * [[http:// | ||
+ | |||
+ | ==== Java 9 HTML5 javadoc ==== | ||
+ | * [[java: | ||
+ | * [[http:// | ||
+ | < | ||
+ | javadoc { | ||
+ | options.addBooleanOption(' | ||
+ | } | ||
+ | </ | ||
+ | |||
==== 멀티 모듈의 소스를 합쳐 Javadoc 생성 ==== | ==== 멀티 모듈의 소스를 합쳐 Javadoc 생성 ==== | ||
줄 404: | 줄 417: | ||
* 테스트 수행이 끝나면 보고서를 생성한다. | * 테스트 수행이 끝나면 보고서를 생성한다. | ||
* JUnit, TestNG를 지원한다. | * JUnit, TestNG를 지원한다. | ||
+ | * [[https:// | ||
==== 테스트 실행 ==== | ==== 테스트 실행 ==== | ||
* 테스트는 독립 JVM에서 격리상태로 실행된다. | * 테스트는 독립 JVM에서 격리상태로 실행된다. | ||
줄 421: | 줄 434: | ||
} | } | ||
</ | </ | ||
- | * '' | + | * '' |
+ | * '' | ||
* '' | * '' | ||
* 표준 출력/ | * 표준 출력/ | ||
줄 466: | 줄 480: | ||
* '' | * '' | ||
- | ==== 테스트의 분리 ==== | + | ==== 테스트의 분리 |
* '' | * '' | ||
* [[http:// | * [[http:// | ||
줄 494: | 줄 508: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | ==== 테스트의 분리 - 소스셋 분리 - 권장 ==== | ||
+ | * [[https:// | ||
+ | |||
+ | <code groovy> | ||
+ | // 별도 소스셋 구성 | ||
+ | sourceSets { | ||
+ | integrationTest { | ||
+ | java { | ||
+ | compileClasspath += main.output + test.output | ||
+ | runtimeClasspath += main.output + test.output | ||
+ | srcDir file(' | ||
+ | } | ||
+ | groovy { // for Spock | ||
+ | compileClasspath += main.output + test.output | ||
+ | | ||
+ | srcDir file(' | ||
+ | } | ||
+ | resources.srcDir file(' | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // integrationTest 전용 configuration 지정. | ||
+ | // integrationTest에만 필요한 의존성 지정 가능. | ||
+ | |||
+ | configurations { | ||
+ | integrationTestCompile.extendsFrom testCompile | ||
+ | integrationTestRuntime.extendsFrom testRuntime | ||
+ | } | ||
+ | |||
+ | // Task 생성 | ||
+ | task integrationTest(type: | ||
+ | testClassesDirs = sourceSets.integrationTest.output.classesDirs // 구버전에서는 Dir 단수형으로만 지정됨. | ||
+ | classpath = sourceSets.integrationTest.runtimeClasspath | ||
+ | reports { // reports 는 원하는대로만. | ||
+ | junitXml.enabled = true | ||
+ | html.enabled = true | ||
+ | ignoreFailures = true | ||
+ | } | ||
+ | } | ||
+ | |||
+ | // 의존성 지정으로 check 실행시 자동 테스트 | ||
+ | check.dependsOn integrationTest | ||
+ | </ | ||
+ | |||
+ | ==== TestSets Plugin 사용 ==== | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * TBD | ||
==== Convention Values ==== | ==== Convention Values ==== | ||
줄 547: | 줄 610: | ||
reportOn subprojects*.test | reportOn subprojects*.test | ||
} | } | ||
+ | </ | ||
+ | |||
+ | ==== Test 완료후에 실패건이 있는지 마킹만 하기 ==== | ||
+ | * '' | ||
+ | * [[git: | ||
+ | <code groovy> | ||
+ | test { | ||
+ | ignoreFailures = true | ||
+ | afterSuite { TestDescriptor desc, TestResult result -> | ||
+ | if (result.failedTestCount > 0) { | ||
+ | rootProject.buildDir.mkdir() | ||
+ | File testFailed = rootProject.file(" | ||
+ | if (!testFailed.exists()) { | ||
+ | testFailed.createNewFile() | ||
+ | testFailed.text = "이 파일이 존재하면 테스트중 실패한 건이 존재한다는 의미입니다." | ||
+ | } | ||
+ | logger.warn(" | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | * 다른 stage 에서 ''< | ||
+ | |||
+ | <code sh> | ||
+ | if [ -f " | ||
+ | echo "file exists" | ||
+ | exit 1 | ||
+ | fi | ||
</ | </ | ||
===== Jar ===== | ===== Jar ===== | ||
줄 604: | 줄 695: | ||
===== JavaExec ===== | ===== JavaExec ===== | ||
Java 클래스를 실행할 때 [[gradle: | Java 클래스를 실행할 때 [[gradle: | ||
- | '' | + | '' |
[[gradle: | [[gradle: | ||
줄 634: | 줄 725: | ||
args ' | args ' | ||
systemProperty ' | systemProperty ' | ||
+ | jvmArgs ' | ||
} | } | ||
</ | </ |