spring boot project를 docker image로 만들 때 jib build를 사용한다. mvn -B -U clean deploy jib:build multi module project인 경우 전체 모듈 중 일부만 jib build 할 대상이 될 것이다. 이런 경우 -pl 옵션으로 대상 모듈을 따로 지정하여 jib build 하게 된다. 이 경우 다음과 같이 명령이 나뉜다. mvn -B -U clean deploy mvn -B -pl 모듈1,모듈2 jib:build 이 설정으로도 문제없이 동작하지만 모듈이 추가되거나 삭제될 경우 위의 ci 설정도 매번 변경해주어야 한다. 좀 더 나은 방법으로 package 시 jib build도 같이 수행해 주도록 설정을 할 수 있다. https://gith..
github의 maven project를 maven central repotisory (https://search.maven.org/)에 등록하면서 한 작업들을 기록등록을 위한 가이드는 아래와 같다.https://central.sonatype.org/publish/publish-guide/ OSSRH Guide - The Central Repository DocumentationGetting started Introduction Sonatype OSSRH (OSS Repository Hosting) uses Sonatype Nexus Repository Manager to provide repository hosting service for open source project binaries - be s..
멀쩡하게 잘 돌아가던 프로젝트가 Spring Boot 2.4.X로 버전을 바꾸면서 eclipse에서 다음과 같은 에러가 발생하였다. DescriptionResourcePathLocationType Input length = 1 (org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources:default-resources:process-resources) org.apache.maven.plugin.MojoExecutionException: Input length = 1 at org.apache.maven.plugins.resources.ResourcesMojo.execute(ResourcesMojo.java:362) at org.apache.maven...
maven으로 jib:build 를 사용하면 보통 다음처럼 사용한다. mvn clean deploy jib:build 그런데 빌드된 결과를 실행하면 해당 프로젝트에서 참조한 snapshot이 갱신되지 않은 이전 것을 참조하고 있는 경우가 있다. 빌드 수행 결과를 살펴보면 deploy까지 maven의 배포 실행을 처리한 이후 jib:build 시 다시 repository에서 빌드된 결과물을 가져와서 docker image 를 빌드한다. jib의 경우 layer를 다음과 같이 처리한다. github.com/GoogleContainerTools/jib/blob/master/docs/faq.md#how-are-jib-applications-layered GoogleContainerTools/jib 🏗 Build..
이 방법이 좋은 방법인지는 잘 모르겠다. snapshot 버전으로 매번 빌드하여 프로젝트를 개발하는데 배포 시점에는 release 배포를 해야 한다는 요구사항이 있었다. 매번 release로 변경하는 과정을 수작업으로 하면 불편하기 때문에 jenkins에서 처리하려고 하였다. 또한 개발은 git develop branch에서 진행하고 배포 시엔 master branch로 merge 하려고 한다. 정리하면 다음 요구사항을 수행한다. develop branch를 master branch로 merge version 변경 property 값 변경 deploy 수행 스크립트로 작성하면 대략 다음과 같다. git merge/develop mvn versions:set -DnewVersion=${BUILD_NUMBE..