-
[Git] window에서 filename too long 문제 해결
오류 윈도우에서 git으로 repository를 clone하거나 checkout을 할 때 unable to create file C:\dev\my_project\........ (filename too long) 이라고 뜨면서 커맨드를 실패 할 때가 있다. 원인 말 그대로 파일명(단순 파일명뿐 아니라 파일의 전체 경로 포함)이 너무 길어서 생기는 문제다. 윈도우는 내부 API를 위해서 파일명을 260자리로 제한한다고 한다. 해결 1. 파일명 조정 전체경로까지 포함해서 260자이기 때문에 조절을 하려면 가능은하다. 하지만 코드 파일이면 경로에 패키지까지 포함되어있기 때문에 쉽게 바꾸기는 어렵다고 생... Read More
-
[JAVA] lombok의 @Superbuilder
lombok을 사용하면서 객체 생성을 할 때 builder 패턴을 많이 사용한다. 아무래도 setOOO()도 안하고 @Builder선언 하나로 간단하게 사용이 가능해서 더 편하게 쓴다. 이런 @Builder가 상속관계에서는 원하는대로 작동하지 않는다. 자식 객체에서 builder()로 객체를 빌드할 때 부모의 필드는 사용 할 수가 없다. 바로 IDE에서 컴파일 오류로 판단해서 보여준다. 그럴 때 사용하는게 @SuperBudiler다.(lombok v1.18.2부터) @SuperBudiler는 자식이 부모의 필드까지 빌더 패턴으로 사용하게 해준다. @SuperBudiler 어노테이션을 보면 이렇게 설명되... Read More
-
[SPRING] Asciidoctor 빌드 오류(asGemPath())
오류 In plugin 'org.asciidoctor.convert' type 'org.asciidoctor.gradle.AsciidoctorTask' method 'asGemPath()' should not be annotated with: @Optional, @InputDirectory. 잘 사용하던 spring-rest-docs에서 갑자기 오류가 발생했다. asGemPath()에 문제가 있다면서 안된다. 확인을 해보니 스니펫에 adoc파일들은 만들어지는데 html이 안만들어졌다. 원인 gradle 버전이 변경되면서 발생한 오류다. 최근 gradle6에서 7로 버전을 올렸는데 버전을 올리자마자 ... Read More
-
[Gradle] fianlizedBy, dependsOn 이용해서 task 자동 실행시키기
gradle task를 작성하다보면 특정 task 이 후 다른 task를 실행시키거나 task를 실행하기 전에 특정 task 실행시킬 필요가 있다. 예를들면, ‘bootWar를 실행하기전에 반드시 test를 수행한다. test가 성공해야만 bootWar를 수행한다.’ 등이 있을 듯 하다. 이런 task의 관계를 finalizedBy, dependsOn 을 이용해 제어 할 수 있다. (gradle 6.9(groovy) 버전 기준입니다.) finalizedBy task 이 후 실행시킬 task를 설정해준다. 단, 해당 task의 성공/실패 여부와 상관없이 실행시킨다. TaskA.finalizedBy('Ta... Read More
-
[SPRING] Spring rest docs에서 원하는 필드만 문서화하기
테스트코드를 작성하고 Spring rest docs를 만들 때 사용되는 body의 필드, path parameter, query parameter를 모두 명시해주어야 오류없이 정상적으로 실행이 되고 문서가 만들어진다. 없으면 바로 오류가 나온다. 명시 안된 부분에 대해서 명시하라고 한다. org.springframework.restdocs.snippet.SnippetException: The following parts of the payload were not documented: { "code" : "code-01", "message" : "THIS IS TEST" } 정확한 문서를 위해 ... Read More