일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- jetbrains
- tibero
- log4j2
- react
- dbeaver
- LOG4J
- docker
- kubectl
- gson
- NCP
- BPMN
- wildfly
- Windows
- JPA
- nodejs
- Spring
- useEffect
- MySQL
- Java
- IntelliJ
- VSCode
- springboot
- nginx
- Kubernetes
- JavaScript
- intellijIDEA
- Git
- gradle
- mybatis
- database
- Today
- Total
목록패키지관리/Gradle (12)
두 손끝의 창조자
gradle 빌드를 하면 존재하는 테스트를 모두 수행한다. 때에 따라서 build시만 예외처리를 하고 싶으면 아래와 같이 대상을 등록한다. test { exclude("**/TestToSkipTest.class") }
특정 경로에 있는 모든 jar 파일 implementation fileTree(dir: 'libs', includes: ['*.jar']) 파일 지정 implementation files('libs/bla.jar')
서버에 쉘 스크립트를 만들어 넣고 스크립트를 실행할 때 유의해야 할 점이 있다. 쉘 스크립트가 실행되는 위치가 쉘 스크립츠 위치와 상관없이 홈 디렉토리이다. 따라서 스크립트에 스크립트의 상대경로로 무언가 파일을 읽거나 쓰도록 했다면 서버에서 직접 실행했을 때는 잘 되지만 hidetake 같은 원격 쉘 실행도구로는 정확하게 실행되지 않는다. 경로에 유의하라
gradle 플러그인 hidetake 로 원격지에 있는 서버에 쉘 명령을 수행할 수 있다. ssh 로 최초 접속을 하면 알 수 업는 서버인데 계속 하겠냐고 물어보고 알았다고 하면 ~/.ssh/known_hosts 파일에 호스트 정보를 기록한다. 그 뒤는 안물어보게 되는데 hidetake로 ssh 명령 스크립트를 만들고 배포를 하고 사용하도록 했는데 해당 사용자는 해당 호스트 접속 이력이 없어 권한이 없다고 뜨거나 ssh 접속을 아얘 한적이 없다면 known_hosts 파일을 찾을 수 없다고 한다. 이럴때 간단하게 known_hosts 에 호스트 정보를 넣어주면 된다. ssh-keyscan -t rsa server.com >> ~/.ssh/known_hosts 윈도우즈에서는 git-scm에서 git을 설치..
api 키 같이 노출되면 안되는 정보들은 로컬에 저장하는 것도 방법이다. ~/.gradle/gradle.properties https://www.youtube.com/watch?v=-RNXngQY5Dc&list=PL4ebO4PmeAi4MgpaaK9Hej0P6ooIhmfms&t=1301s
https://mond-al.github.io/dependency-gradle-setup 앱의 의존성 확인하고 전이 의존성 변경하기 의존성과 관련하여 문제가 생겼다고 판단되면 의존성 트리를 봐야합니다. 터미널에서 프로젝트가 있는 폴더로 이동하고 아래의 명령어를 실행 하면됩니다. mond-al.github.io
import java.text.FieldPosition def pos = configure(new FieldPosition(10)) { beginIndex = 1 endIndex = 5 } println pos.beginIndex println pos.endIndex Gradle 공홈에서 문서를 보고 있는데 위와 같은 구문이 있었다. 그런데 이 문법이 이해가 안 갔다. configure 가 Prject 인터페이스의 메소드인건 알겠고, 파라미터로 FieldPosition 의 인스턴스를 넘기는 것도 알겠고.. 그런데 그 뒤에 있는 클로저는 뭐지..? 그루비는 클로저가 메서드의 마지막 인수인 경우, 외부에서 클로저를 넣을 수 있는 문법을 제공한다. 이딴건 왜 제공하는지 모르겠다. 사람 헷갈리게 그래서 위 구문..
로컬 네트워크에 설치한 넥서스 리포지토리를 사용하려고 아래와 같이 리포지토리를 등록하면 maven { url "http://10.110.1.12:8889/nexus/content/groups/public" } 아래와 같은 오류를 볼 수 있다. * What went wrong: Execution failed for task ':compileJava'. > Failed to notify dependency resolution listener. > Could not resolve all dependencies for configuration ':detachedConfiguration1'. > Using insecure protocols with repositories, without explicit opt-i..
발생할 때 error: unmappable character (0xEB) for encoding x-windows-949compileJava { options.encoding = "utf-8" } compileTestJava { options.encoding = "utf-8" } 추가
Plugin [id: 'maven'] was not found in any of the following sources: gradle 7부터 maven 플러그인은 지원하지 않는다. 대신 maven-publish 를 사용할 것. 로컬설치 task인 install은 없어지고 publishToMavenLocal task로 좀 더 명료 태스크가 생겼다.
전반적인 처리 절차 central.sonatype.org/pages/ossrh-guide.html#deployment OSSRH Guide OSSRH Guide Introduction Sonatype OSSRH (OSS Repository Hosting) uses Sonatype Nexus Repository Manager to provide repository hosting service for open source project binaries - be sure to review the full terms of service. OSSRH uses the Maven repository fo central.sonatype.org Gradle로 배포 방법 상세 central.sonatype.org/page..
gradle의 install task는 artifact를 로컬 캐시에 저장한다. install task를 사용하기 위해서는 plugin에 'maven' 을 추가하면 된다. apply plugin: 'maven' 로컬 캐시를 저장소처럼 사용하면 여러 프로젝트를 동시에 개발할 때 유용하게 쓸 수 있다. 사용하려면 repotitories에 'mavenLocal()' 을 추가한다. repositories { mavenLocal() mavenCentral() }