일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- intellijIDEA
- useEffect
- nginx
- log4j2
- Kubernetes
- springboot
- gson
- Java
- wildfly
- JavaScript
- jetbrains
- VSCode
- Git
- react
- dbeaver
- Spring
- docker
- mybatis
- LOG4J
- database
- IntelliJ
- gradle
- JPA
- Windows
- nodejs
- tibero
- kubectl
- BPMN
- NCP
- MySQL
- Today
- Total
목록패키지관리 (13)
두 손끝의 창조자
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을 설치..
Maven으로 잘 불러오던 라이브러리가 어느 순간 Blocked mirror for repositories 에러를 뿜으면서 안됨. 이유는 3.8.1 부터 보안상의 이유로 HTTP 리포지토리를에 접근을 막았기 때문. 나같은 경우 같은 네트워크에 넥서스 리포지토리를 구축해놓고 라이브러리 공유차원에서 사용하고 있었는데 이 리포지토리가 HTTPS가 아니였기 때문에 오류났음. 리포지토리를 HTTPS 로 구동하게 하면 가장 좋겠지만 할 수 없는 경우 해결방법은 ~/.m2/settings.xml 에 미러 리포지토리를 추가하여 임시적으로 해결할 수 있음. 만약 maven 에 리포지토리가 mynexus http://111.11.11.111/nexus/content/groups/public true true 이었다면 ~/..
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() }