New Score :0
High Score :0
Run Best
NICE BUSINESS TYPE INDICATOR
3. 급전을 친구에게 빌렸는데 오늘이 돈을 주기로 한날.. 그런데 카드값을 내야하는 날도 오늘인데... 이걸 어쩌나...
4. 우리 회사는 중요한 의사 결정을 할때?
5. 열심히 일한 나를 위한 선물을 주고싶다. 어떤게 좋을까?
6. 은행에서 투자상품을 추천받았다. 어떤걸 가입하지?
7. 회사에서의 나는?
8. 꿈에서 깨어나니 20년 전으로 돌아갔다. 당신이 제일 먼저 하는일은?
9. 내가 인사 담당자라면 신규 입사자 채용 시 제일 중요하게 보는것은?
10. 회사에 정말 싫어하는 동료가 있다면?
11. 가난한 집의 가장이 되었다.. 자녀의 생일 날 선물은?
12. 평소 회사 출근 스타일은?
13.회사 체육대회 하는 날이다. 오늘 뭐하지?
14. 나의 업무 스타일은?
The Gradle team is excited to announce Gradle 8.0.1.
This is the first patch release for Gradle 8.0.
It fixes the following issues:
- #21551 툴체인과 Scala 플러그인의 문서 통합 및 대상 플래그 문제
- #23888 --no-rebuild 새로운 사용 중단 주기가 없고 사용 중단이 무효화되는 이유 없이 갑자기 사라졌습니다.
- #23905 Gradle 8.0이 문자열 클래스 오류에서 isBlank를 찾을 수없는 스칼라 빌드에 실패합니다.
사용자는 8.0 대신 8.0.1로 업그레이드하는 것이 좋습니다.
이 릴리스에서는 Kotlin DSL 빌드 스크립트를 컴파일하는 데 소요되는 시간을 줄이고 Kotlin DSL의 API 수준을 Kotlin 1.8로 업그레이드합니다.
첫 번째 호출에서 구성 캐시는 기존 병렬 모드에 비해 더 많은 작업을 병렬로 실행하여 빌드 속도를 높입니다.
또한 캐시 디렉터리의 보존 시간을 구성하여 Gradle 사용자 홈의 크기를 관리할 수 있습니다. 캐시 정리를 비활성화할 수도 있습니다.
Gradle 8.0에는 많은 버그 수정 및 기타 일반적인 개선 사항이 있습니다. 주 버전인 이 릴리스에는 더 이상 사용되지 않는 API 및 동작에 대한 변경 사항도 있습니다. 삭제된 API 및 동작에 대한 지침은 Gradle 7.x 업그레이드 가이드를 참조하세요.
Upgrade instructions
래퍼를 업데이트하여 Gradle 8.0.1을 사용하도록 빌드를 전환합니다.
./gradlew wrapper --gradle-version=8.0.1
Gradle 7.8로 업그레이드할 때 지원 중단, 호환성이 손상되는 변경, 기타 고려 사항에 대해 알아보려면 Gradle 0.x 업그레이드 가이드를 참조하세요.
Java, Groovy, Kotlin 및 Android 호환성에 대해서는 전체 호환성 노트를 참조하세요.
New features, performance and usability improvements
Kotlin DSL
Gradle의 Kotlin DSL은 지원되는 IDE에서 향상된 편집 환경(우수한 콘텐츠 지원, 리팩토링, 문서화 등)과 함께 Groovy DSL에 대한 대체 구문을 제공합니다.
Faster Kotlin DSL build script compilation
Gradle 8.0에는 전체 스크립트 컴파일 시간을 약 20% 단축하는 .gradle.kts 스크립트의 선언적 플러그인 {} 블록용 인터프리터가 도입되었습니다.
성능 향상은 일부 시나리오에서 제한됩니다. 인터프리터가 선언적 플러그인 {} 블록을 구문 분석할 수 없는 경우 Gradle은 Kotlin 컴파일러를 사용하도록 대체합니다. 다음과 같이 지원되는 형식만 사용해야 합니다.
plugins {
id("java-library") // <1>
id("com.acme.example") version "1.0" apply false // <2>
kotlin("jvm") version "1.7.21" // <3>
}
- Plugin requested by plugin identifier string
- Plugin requested by plugin identifier and version and/or the plugin apply flag
- Plugin requested with the kotlin(...) helper
플러그인(예: alias(libs.plugins.acme)) 또는 유형이 안전한 플러그인 접근자(예: 'acme-plugin')에 버전 카탈로그 별칭을 사용하면 성능이 향상되지 않습니다. 이러한 형식에 대한 지원은 나중에 추가될 예정입니다.
플러그인 구문에 대한 자세한 내용은 선언적 plugins {} 블록 의 제한된 구문에 대한 문서를 참조하세요.
Kotlin DSL updated to Kotlin API level 1.8
이전에는 Kotlin DSL이 Kotlin API 레벨 1.4로 제한되었습니다. Gradle 8.0부터 Kotlin DSL은 Kotlin API 레벨 1.8로 고정됩니다. 이 변경으로 Kotlin 1.4.0 이후 Kotlin 언어 및 표준 라이브러리에서 Kotlin DSL 빌드 스크립트로 개선되었습니다.
이 업그레이드의 호환성이 손상되는 변경 및 호환성이 손상되지 않는 변경에 대한 자세한 내용은 7.x 업그레이드 가이드를 참조하세요.
Kotlin DSL can use newer Java features
이전에는 .gradle.kts 스크립트 컴파일이 Java 8바이트 코드 및 기능으로 제한되었습니다. Gradle 8.0부터 Kotlin DSL은 빌드를 실행하는 JVM의 자바 버전을 사용합니다.
팀에서 Java 11을 사용하여 Gradle을 실행하는 경우 이제 빌드 스크립트에서 Java 11 라이브러리 및 언어 기능을 사용할 수 있습니다.
이것은 미리 컴파일 된 스크립트 플러그인에는 적용되지 않습니다 (아래 참조).
미리 컴파일된 스크립트 플러그인은 구성된 Java 툴체인을 사용합니다.
이전에는 미리 컴파일된 스크립트 플러그인 컴파일 에서 kotlinDslPluginOptions.jvmTarget에 의해 구성된 JVM 대상을 사용했습니다.
Gradle 8.0부터 사전 컴파일된 스크립트 플러그인은 프로젝트에 대해 구성된 Java 툴체인을 사용하거나 툴체인이 구성되지 않은 경우 Java 8을 사용합니다.
미리 컴파일된 스크립트 플러그인에 대해 Java 툴체인을 구성하는 방법에 대한 자세한 내용은 kotlin-dsl 플러그인 설명서를 참조하고, 변경된 동작에 대한 자세한 내용은 마이그레이션 가이드를 참조하세요.
Improvements for buildSrc builds
이 릴리스에는 buildSrc 빌드가 포함된 빌드처럼 동작하도록 몇 가지 개선 사항이 포함되어 있습니다. 포함된 빌드는 증분 빌드 및 작업 캐싱을 더 잘 활용하기 위해 빌드 논리를 별도의 프로젝트 구성으로 구성하는 대체 방법입니다. 이제 그들은 동일한 혜택을 제공합니다.
Run buildSrc tasks directly
이제 포함된 빌드의 작업에 사용된 것과 동일한 구문을 사용하여 명령줄에서 buildSrc 빌드의 작업을 실행할 수 있습니다. 예를 들어 gradle buildSrc:build를 사용하여 buildSrc 빌드에서 빌드 작업을 실행할 수 있습니다.
자세한 내용은 사용 설명서를 참조하십시오.
buildSrc can include other builds
이제 buildSrc 빌드는 buildSrc/settings.gradle.kts 또는 buildSrc/settings.gradle에서 선언하여 다른 빌드를 포함할 수 있습니다. 이렇게 하면 buildSrc를 계속 사용하는 동안 빌드 논리를 더 잘 조직할 수 있습니다.
이 설정 스크립트에서 pluginsManagement { includeBuild(someDir) } 또는 includeBuild(someDir)를 사용하여 buildSrc에 다른 빌드를 포함할 수 있습니다.
자세한 내용은 사용 설명서를 참조하십시오.
Tests for buildSrc are no longer automatically run
Gradle은 buildSrc의 출력을 빌드할 때 해당 출력을 생성하는 작업만 실행합니다. 더 이상 빌드 작업을 실행하지 않습니다. 특히 이는 buildSrc 및 해당 하위 프로젝트의 테스트가 필요하지 않을 때 빌드 및 실행되지 않음을 의미합니다.
위에서 설명한 대로 다른 프로젝트와 동일한 방식으로 buildSrc에 대한 테스트를 실행할 수 있습니다.
Init scripts are applied to buildSrc
--init-script를 사용하여 명령줄에 지정된 초기화 스크립트는 이제 기본 빌드 및 포함된 모든 빌드 외에도 buildSrc에 적용됩니다.
자세한 내용은 사용 설명서를 참조하십시오.
Configuration cache
구성 캐시는 구성 단계의 결과를 캐시 하고 후속 빌드에 다시 사용하여 빌드 시간을 개선합니다. 이는 빌드 성능을 크게 향상시킬 수 있는 배양 기능입니다.
More parallelism on the first build
이제 구성 캐시를 사용하면 병렬 실행을 사용하도록 설정하는 것보다 더 세분화된 병렬 처리를 사용할 수 있습니다. Gradle 8.0부터 구성 캐시를 사용할 때 작업이 첫 번째 빌드와 병렬로 실행됩니다.
Gradle은 구성 캐시 항목을 재사용할 때 항상 작업을 병렬로 실행했습니다. 모든 작업은 기본적으로 병렬로 실행되며, 동일한 프로젝트 내의 작업에도 종속성 제약 조건이 적용됩니다. 이제 캐시 항목을 저장할 때도이 작업을 수행합니다.
구성 캐시가 사용 설정되고 Gradle이 현재 빌드와 호환되는 캐시 항목을 찾을 수 있으면 캐시에서 작업을 로드하고 격리하여 실행합니다. Gradle이 적절한 캐시 항목을 찾을 수 없는 경우 구성 단계를 실행하여 필요한 작업을 결정하고 새 캐시 항목에 저장한 다음 저장된 상태에 따라 즉시 빌드를 실행합니다.
이 새로운 동작에는 몇 가지 이점이 있습니다.
- 역직렬화 중에 발생하는 모든 문제는 캐시 누락 빌드에 보고되므로 더 쉽게 검색할 수 있습니다.
- 작업은 캐시 누락 및 캐시 적중 횟수 빌드 모두에서 동일한 상태를 가지며 빌드 간의 일관성을 허용합니다.
- Gradle은 캐시 누락 빌드에서 작업을 실행하기 전에 구성 상태에서 사용하는 메모리를 해제하여 최대 메모리 사용량을 줄일 수 있습니다.
캐시 누락과 캐시 적중 빌드 간의 이러한 일관된 동작은 첫 번째(캐시 누락) 빌드에서 더 많은 문제를 발견할 수 있으므로 구성 캐시 사용으로 전환하는 사용자에게 도움이 됩니다.
자세한 내용은 사용 설명서를 참조하십시오.
Expanded compatibility with core plugins
gradle init 명령은 구성 캐시가 활성화된 상태에서 사용할 수 있습니다.
ANTLR 플러그인 및 Groovy DSL 미리 컴파일된 스크립트는 이제 구성 캐시와 호환됩니다.
모든 핵심 Gradle 플러그인에 대한 구성 캐시 지원의 현재 상태는 구성 캐시 문서에서 확인할 수 있습니다.
Java Toolchains improvements
Updated toolchain download repositories
Gradle 7.6에서는 유연성 향상을 위해 툴체인 리포지토리가 도입 되었습니다 . Gradle 8.0에는 더 이상 기본 툴체인 프로비저너가 없습니다. 하나 이상의 Java 도구 체인 저장소를 명시적으로 선언해야 합니다. 이것은 Foojay 툴체인 플러그인과 같은 툴체인 저장소 플러그인을 통해 수행 할 수 있습니다.
plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version("0.4.0")
}
For more details, see the user manual.
General improvements
구성 가능한 Gradle 사용자 홈 캐시 정리 및 보존
이전에는 Gradle 사용자 홈의 캐시 정리에 고정 보관 기간(캐시에 따라 30일 또는 7일)이 사용되었습니다. 이제 Gradle 사용자 홈의 초기화 스크립트에 있는 설정 개체를 통해 이러한 보관 기간을 구성할 수 있습니다.
beforeSettings { settings ->
settings.caches {
downloadedResources.removeUnusedEntriesAfterDays = 45
}
}
또한 이전에는 Gradle 사용자 홈의 org.gradle.cache.cleanup Gradle 속성을 통해서만 캐시 정리를 부분적으로 사용 중지할 수 있었습니다. 캐시 정리를 사용 중지하면 이제 Gradle 사용자 홈에서 더 많은 캐시에 영향을 미치며 Gradle 사용자 홈의 초기화 스크립트에 있는 설정 개체를 통해 구성할 수도 있습니다.
자세한 내용은 사용 설명서를 참조하십시오.
향상된 경고 모드 모두 및 실패가 이제 더 자세하게 표시됩니다.
Gradle 8.0 이전에는 모든 경고를 인쇄해야 하는 경고 모드가 각 특정 경고 메시지에 대해 하나만 인쇄되었습니다. 이로 인해 일부 경고 메시지가 누락되었습니다. 예를 들어 동일한 메시지가 포함된 두 개의 경고가 있지만 빌드 프로세스의 다른 단계(즉, 다른 스택 추적)에서 발생한 경우 하나만 인쇄되었습니다.
이제 메시지와 스택 추적의 각 조합에 대해 하나씩 인쇄됩니다. 이 결과는 더 장황하지만 더 완벽합니다.
자세한 내용은 사용 설명서를 참조하십시오.
종속성 확인 메타데이터는 신뢰 이유 문서화를 지원합니다.
종속성 확인 메타데이터는 사용 중인 종속성이 해당 종속성의 체크섬과 일치하도록 하여 프로젝트를 안전하게 유지하는 데 도움이 됩니다. 이 메타데이터는 XML 구성 파일에 있으며 이제 reason 특성을 허용합니다. 이 reason 속성을 사용하면 아티팩트를 신뢰할 수 있는 이유 또는 확인 메타데이터.xml에서 직접 아티팩트에 대해 선택한 체크섬 확인이 필요한 이유에 대한 자세한 정보를 확인할 수 있습니다.
종속성 확인 메타데이터 파일 확인-메타데이터가 있는 다음 노드.xml 이제 reason 속성을 지원합니다.
- 신뢰할 수 있는 아티팩트 아래의 신뢰 XML 노드
- 구성 요소 아래의 MD5, SHA1, SHA256 및 SHA512 노드
아티팩트를 신뢰할 수 있는 이유 또는 선택한 체크섬 확인이 확인 메타데이터.xml에서 직접 아티팩트에 필요한 이유에 대한 자세한 정보를 제공하는 데 도움이 됩니다.
자세한 내용은 사용 설명서를 참조하십시오.
신뢰할 수 있는 키 링 파일은 CLI에서 쉽게 내보낼 수 있습니다.
CI 빌드가 키 서버와 통신해야 하는 횟수를 최소화하기 위해 Gradle은 로컬 키링 파일을 지원합니다. 이 파일은 정확성을 유지하기 위해 자주 내보내야 합니다. 더 이상 신뢰할 수 있는 키를 내보낼 때 전체 확인 메타데이터를 작성할 필요가 없습니다.
You can now use the export-keys flag to export all already trusted keys:
./gradlew --export-keys
For more details, see the user manual.
코드 품질 플러그인 개선
CodeNarc 플러그인이 Groovy 런타임 버전을 감지합니다.
CodeNarc는 그루비 프로젝트에 대한 정적 분석을 수행합니다. 이제 Groovy 4와 함께 사용할 별도의 버전을 게시합니다. Gradle은 현재 Groovy 3와 함께 제공됩니다.
향후 호환성을 보장하기 위해 CodeNarc 플러그인은 이제 현재 Groovy 런타임에 적합한 CodeNarc 버전을 자동으로 감지합니다.
CodeNarcExtension의 toolVersion 속성을 사용하여 CodeNarc 버전을 명시적으로 지정할 수 있습니다.
기본적으로 병렬 실행으로 더 빠른 PMD 분석
PMD 플러그인은 정적 코드 분석기를 사용하여 프로젝트의 Java 소스 파일에 대한 품질 검사를 수행합니다. 이제 Gradle 작업자 API 및 JVM 도구 체인을 사용합니다. 이 도구는 이제 외부 작업자 프로세스를 통해 분석을 수행하므로 해당 작업을 이제 한 프로젝트 내에서 병렬로 실행할 수 있습니다.
Java 프로젝트에서 이 도구는 프로젝트에 필요한 것과 동일한 버전의 Java를 사용합니다. 다른 유형의 프로젝트에서는 Gradle 데몬에서 사용하는 것과 동일한 버전의 Java를 사용합니다.
자세한 내용은 사용 설명서를 참조하십시오.
Promoted features
프로모션 기능은 이전 버전의 Gradle에서 인큐베이팅되었지만 이제는 지원되며 이전 버전과의 호환성이 적용되는 기능입니다. 자세한 내용은 "기능 수명 주기"의 사용자 설명서 섹션을 참조하십시오.
다음은 이 Gradle 릴리스에서 홍보된 기능입니다.
Promoted features in the Tooling API
GradleConnector.disconnect() 메서드는 이제 안정적인 것으로 간주됩니다.
Promoted features in the antlr plugin
AntlrSourceDirectorySet 인터페이스는 이제 안정적인 것으로 간주됩니다.
Promoted features in the ear plugin
Ear.getAppDirectory() 메서드는 이제 안정적인 것으로 간주됩니다.
Promoted features in the eclipse plugin
EclipseClasspath.getContainsTestFixture() 메서드는 이제 안정적인 것으로 간주됩니다.
Promoted features in the groovy plugin
다음 유형 및 메서드는 이제 안정적인 것으로 간주됩니다.
- GroovySourceDirectorySet
- GroovyCompileOptions.getDisabledGlobalASTTransformations()
Promoted features in the scala plugin
인터페이스는 이제 안정적인 것으로 간주됩니다.
Promoted features in the war plugin
War.getWebAppDirectory() 메서드는 이제 안정적인 것으로 간주됩니다.
Promoted features in the Settings API
Settings.dependencyResolutionManagement(Action) 및 Settings.getDependencyResolutionManagement() 메서드는 이제 안정적인 것으로 간주됩니다.
종속성 확인 관리의 모든 메서드는 이제 중앙 리포지토리 선언을 위한 메서드를 제외하고 안정적입니다.
Known issues
알려진 문제는 이 릴리스의 변경 사항과 직접 관련된 릴리스 이후에 발견된 문제입니다.
현재 Gradle 8.0.1에는 알려진 문제가 없습니다.
External contributions
우리는 Gradle 커뮤니티의 기여를 받는 것을 좋아합니다. 기여에 대한 자세한 내용은 gradle.org/contribute 참조하십시오.
Reporting problems
이 릴리스에서 문제가 발견되면 문제 지침을 준수하는 GitHub 문제에 버그 를 제출하세요. 버그가 발생했는지 확실하지 않은 경우 포럼을 사용하십시오.
Gradle과 함께 행복을 쌓아 주시길 바라며, 트위터 또는 GitHub를 통해 여러분의 피드백을 기다리겠습니다.