일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- scala 2.10
- Kafka
- scala
- kafka streams
- kafkastream
- spring-batch
- Spring
- enablekafkastreams
- RabbitMQ
- Logstash
- Elk
- Slick
- spring-kafka
- springboot
- aws
- avo
- reactive
- gradle
- Elasticsearch
- kafka interactive query
- 플레이 프레임워크
- schema registry
- 카프카
- kafkastreams
- play framework
- statestore
- coursera
- spring-cloud-stream
- 한빛미디어
- confluent
- Today
- Total
b
gradle 4.8 릴리즈 그리고 dependency lock 본문
6월 gradle 4.8이 릴리즈 되었다. (현재 4.8.1) 가장 눈에 들어오는 점은 nebula의 gradle-dependency-lock-plugin 으로 사용하고 있던 `Dependency locking` 이거다.
> ./gradlew build --write-locks
사용하기 위해서는 build.gradle 에서 해당 내용을 활성화 시켜야 한다.
(참고 : https://docs.gradle.org/4.8.1/release-notes.html#locking-of-dynamic-dependencies )
dependencyLocking {
lockAllConfigurations()
}
처럼 실행하면 ./gradle/dependency-locks 에 현재 실행된 task 들의 각 단계에서 필요한 dependencies 정보가 lockfile로 생성된다. 예를 들어 build를 실행하니, 아래와 같이 생성되었다.
annotationProcessor.lockfile
checkstyle.lockfile
compileClasspath.lockfile
cpd.lockfile
jacocoAgent.lockfile
pmd.lockfile
runtimeClasspath.lockfile
testAnnotationProcessor.lockfile
testCompileClasspath.lockfile
testRuntimeClasspath.lockfile
만약 dependencies tasks를 실행할 때 --write-locks 옵션을 붙인다음 좀 더 많은 lockfile이 생긴다.
annotationProcessor.lockfile
archives.lockfile
bootArchives.lockfile
checkstyle.lockfile
compile.lockfile
compileClasspath.lockfile
compileOnly.lockfile
cpd.lockfile
default.lockfile
jacocoAgent.lockfile
jacocoAnt.lockfile
pmd.lockfile
runtime.lockfile
runtimeClasspath.lockfile
testAnnotationProcessor.lockfile
testCompile.lockfile
testCompileClasspath.lockfile
testCompileOnly.lockfile
testRuntime.lockfile
testRuntimeClasspath.lockfile
이 후 디펜던시 버전을 변경하여 다시 실행하고자 하면 아래와 같은 메시지를 확인 할 수 있을 것이다.
FAILURE: Build failed with an exception.
* What went wrong:
Could not determine the dependencies of task ':cpdCheck'.
> Could not resolve all dependencies for configuration ':cpd'.
> Dependency lock state for configuration 'cpd' is out of date:
- Did not resolve 'net.sourceforge.pmd:pmd-php:5.6.1' which is part of the lock state
생략