maven.test.skip vs skipTests

목표 jar 빌드할 때 테스트를 제외하는 옵션인 -Dmaven.test.skip=true와 -DskipTests의 차이를 이해한다. 차이점 -Dmaven.test.skip=true: 테스트 코드를 컴파일하지 않고, 테스트를 실행하지도 않는다. -DskipTests: 테스트 코드를 컴파일하지만 실행하지는 않는다. 참고 자료 https://stackoverflow.com/questions/21933895/what-is-the-difference-between-dmaven-test-skip-exec-vs-dmaven-test-skip-tr

2025-02-20 · 1 min · 29 words

테스트 코드도 jar에 포함 시키기

배경 여러 컴포넌트의 테스트 코드에서 테스트 픽스처로 공통적으로 구성되어야 하는 로직이 있었다. 이를 core 컴포넌트의 테스트 코드(/src/test)에 구현하고 모든 컴포넌트에서 사용할 수 있도록 하고 싶었다. Apache Maven JAR Plugin maven에서 jar로 package할 때 사용되는 기본 플러그인 해당 플러그인의 execution을 추가해서 테스트 코드를 별도의 jar 파일로 패키징할 수 있다. <execution>: maven 라이프사이클 중에 플러그인이 실행하고자 하는 내용을 정의할 수 있다. 테스트 코드를 추가하고자 하는 컴포넌트의 maven 설정 아래와 같이 설정하면 프로덕션 코드는 {artifactId}-{version}....

2024-09-15 · 1 min · 101 words

빌드 시 profile 설정

-P {프로필 명} 쉼표로 구분해서 프로필을 여러개 설정할 수 있다. mvn -P profile-1,profile-2 package 참고 자료 https://maven.apache.org/guides/introduction/introduction-to-profiles.html

2024-09-15 · 1 min · 17 words

Maven 시작하기

소개 Maven이란?: 빌드 툴 빌드란?: 아래의 4가지 과정이 존재한다. 컴파일: java코드를 JVM에 올려서 인터프리터가 이해할 수 있는 수준으로 바이너리로 바꿔주는 과정 테스트: 소스코드 컴파일 -> 테스트 코드 컴파일 -> 테스트 실행 패키징: jar나 war 같은 형식으로 압축 배포: 패키징한 것을 remote 저장소에 배포 일반적으로 배포 기능은 안쓰고 Jenkins 같은 외부 툴 사용 Maven 설정 디렉토리 구조(Java web project) pom.xml: maven 설정이 포함되어 있다. /src/main/java: java source code /src/main/resources: 배포할 환경 설정 파일(xml, properties) /src/main/webapp: 웹자원 (JSP, JS, CSS 등) /src/test/java: test source code /src/test/resource: test 환경의 설정 파일 /target: 컴파일 된 결과물이 저장되는 경로 프로젝트마다 구조가 조금씩 다를 수 있다....

2024-09-15 · 6 min · 1091 words

Maven Repository

배경 2개의 프로젝트 사이에 의존 관계를 갖고 있을 때, 로컬에서 빌드하는 방법을 몰랐다. Maven Repository Maven은 3가지 종류의 레포지토리를 지원한다. local: 로컬 장치의 폴더 central: Maven 커뮤니티에서 제공하는 레포지토리 remote: 어떤 조직의 커스텀 레포지토리 Maven에서는 빌드 했을 때 프로젝트를 로컬에서 재사용 할 수 있도록 로컬에 저장한다. 해결 방법 의존이 되는 프로젝트를 먼저 local repository에 배포하고 빌드하면 성공적으로 빌드된다. mvn install # 빌드 후 local repository에 배포 참고 자료 https://www.baeldung.com/maven-local-repository

2024-09-15 · 1 min · 69 words

Maven dependency tree 그리기

배경 팀내에 사용하고 있는 컴포넌트 간에 어떤 의존 관계를 가지고 있는지, 의존 관계에 사이클이 존재하지 않는지 확인이 필요했다. 문법 mvn dependency:tree -Dincludes=[groupId]:[artifactId]:[type]:[version] -Dincludes 또는 -Dexcludes 옵션을 통해 자신이 원하는 의존만 필터링해서 볼 수 있다. groupId, artifactId, type, version 중에 자신이 필터링을 원치 않는 값은 빈값으로 해두면 되고, 와일드 카드도 사용할 수 있다. org.apache.*::: 참고 자료 https://maven.apache.org/plugins/maven-dependency-plugin/examples/filtering-the-dependency-tree.html

2024-09-15 · 1 min · 56 words