Versioning & Packages

Maven Gradle 변환

의존성 선언이나 좌표를 넣고 Maven XML, Groovy, Kotlin DSL 중 출력 형식을 고르세요.

Maven Gradle 변환

의존성 입력

변환 결과

현재 브라우저에서 변환합니다. 선언을 업로드하거나 저장소로 보내지 않습니다.

좌표: g:a[:v[:classifier]]. 호출이나 좌표는 한 줄씩, 블록 중괄호는 별도 줄에 작성하세요.

최대 65,536자와 의존성 200개. 외부 모듈 리터럴만 지원하며 전체 프로젝트는 받지 않습니다.

입력 또는 옵션이 바뀌었습니다. 다시 변환한 뒤 내보내세요.

Maven Gradle 변환은 라이브러리 문서에 다른 빌드 도구의 예제만 있을 때 유용합니다. 부모 프로젝트나 저장소 설정 전체 대신 필요한 의존성 선언만 가져오세요.

결과는 프로젝트에 넣을 선언 조각입니다. 문법을 바꾸는 것과 해당 버전이 실제로 존재하거나 의존성 충돌 없이 빌드되는 것은 별개의 확인 사항입니다.

Maven Gradle 변환을 사용하는 이유

좌표의 필드를 함께 유지

Maven Gradle 변환은 groupId, artifactId, version, classifier를 한 묶음으로 다룹니다. 여러 줄의 XML을 두 DSL로 바꾸고 DSL 사이에서는 지원하는 기존 configuration을 유지합니다.

색으로 구분된 XML 좌표 필드가 두 종류의 짧은 의존성 선언으로 바뀌는 모습

클래스패스 차이를 먼저 확인

Maven 스코프와 Gradle configuration은 완전히 같지 않습니다. 라이브러리 API나 테스트 의존성을 옮길 때 결과 옆의 매핑 안내를 읽고 어떤 코드에서 의존성이 필요한지 확인하세요.

스코프와 분류자 표시는 변환을 통과하고 전체 프로젝트 모양은 입구에서 차단되는 모습

좌표 순서와 사용 범위를 먼저 결정

01

네 번째 항목의 의미 확인

자동 감지는 XML, 지원하는 Gradle 호출, 한 줄에 하나인 좌표를 받습니다. 좌표 순서는 g:a[:v[:classifier]]입니다. 네 번째 항목에 Maven packaging을 넣으면 안 됩니다.

02

앱 의존성과 공개 API 구분

Maven compile과 좌표 입력의 기본값은 implementation입니다. Java 라이브러리가 사용자에게 해당 의존성을 공개해야 할 때 api를 선택하세요. DSL 간 변환에서는 기존 configuration이 우선합니다.

03

편집 후 새 결과 기다리기

자동 변환은 입력 후 350ms를 기다립니다. 끄면 Ctrl/Cmd + Enter로 실행할 수 있습니다. 입력이나 옵션이 바뀌는 즉시 복사와 다운로드가 잠기므로 새 개수와 안내가 나타난 뒤 내보내세요.

의존성 선언에서 보존하는 정보

양방향 의존성 변환

Gradle에서 Maven 방향은 implementation, api, compileOnly, runtimeOnly와 세 가지 테스트 configuration을 지원합니다. XML에서는 기본 compile을 생략하고 나머지 스코프는 명시합니다.

Groovy와 Kotlin DSL 출력

Groovy는 작은따옴표 좌표를, Kotlin DSL은 괄호와 큰따옴표를 사용합니다. 두 형식 사이에서 api나 testRuntimeOnly 이름을 유지하므로 Maven 스코프로 먼저 합치지 않습니다.

분류자와 관리되는 버전

좌표의 네 번째 항목은 XML classifier가 됩니다. 버전이 없으면 그대로 생략하고 기존 BOM이나 플랫폼에서 제공해야 한다고 안내합니다. 분류자가 있다면 버전을 명시해야 합니다.

순서 유지와 선택적 감싸기

최대 200개 선언을 입력 순서대로 변환합니다. 중복은 제거하지 않습니다. 대상 형식의 dependencies 블록을 추가할 수 있지만 원래 주석과 공백은 보존하지 않습니다.

선언 조각 변환의 한계

전체 프로젝트는 변환하지 않음
전체 pom.xml이나 build.gradle에는 플러그인, 저장소, profiles, 부모 설정이 들어갑니다. 이 구조는 거부합니다. 프로젝트 이전은 별도 도구로 처리하고 실제 빌드로 확인하세요.
외부 모듈의 리터럴만 허용
속성, 보간, 동적 버전, 버전 범위, 맵 표기, 클로저, project(), files(), platform(), 버전 카탈로그는 거부합니다. 좌표 필드는 영문자, 숫자, 밑줄, 점, 하이픈만 허용합니다.
지원하지 않는 필드는 오류
optional, exclusions, system/import 스코프와 jar 외의 type은 거부합니다. 알 수 없는 요소와 속성, DTD, 처리 명령도 전체 변환을 실패하게 합니다. 일부만 성공한 결과를 내보내지 않습니다.
매핑 후 클래스패스 검토
compile은 implementation 또는 api, provided는 compileOnly, runtime은 runtimeOnly, test는 testImplementation에 대응합니다. 역변환은 일부 구분을 합치며 테스트 클래스패스와 게시 동작의 완전한 일치를 보장하지 않습니다.
입력 상한과 한 줄 문법
65,536자와 의존성 200개까지 받습니다. Gradle 호출과 좌표는 한 줄씩, 감싸는 중괄호는 별도 줄에 두세요. 버전 존재 여부, 전이 의존성, 충돌은 조회하거나 해결하지 않습니다.

Maven Gradle 변환 자주 묻는 질문

Maven의 type과 scope는 Gradle에서 어떻게 표현하나요?

기본 네 가지 스코프는 규칙의 매핑을 따릅니다. type은 생략하거나 jar만 사용할 수 있습니다. test-jar와 pom은 분류자나 플랫폼 의미가 있어 단순히 필드 이름만 바꾸지 않고 거부합니다.

버전이 없는 의존성도 변환할 수 있나요?

네. group:artifact와 version이 없는 XML을 지원합니다. 출력에서도 버전을 만들지 않으므로 대상 프로젝트에 기존 BOM, 플랫폼 또는 의존성 관리가 있어야 합니다.

${spring.version} 같은 속성 표현식도 지원하나요?

지원하지 않습니다. 속성을 실제 버전으로 해석한 뒤 입력하세요. Maven 속성을 Gradle 문자열에 그대로 넣으면 의미가 달라질 수 있으며 이 도구는 스크립트를 실행하지 않습니다.

Groovy build.gradle을 Kotlin build.gradle.kts로 어떻게 바꾸나요?

지원하는 의존성 호출을 넣고 대상으로 Kotlin을 고르세요. 괄호와 따옴표를 바꿉니다. 작업, 플러그인, 맵 인수와 임의의 Groovy 코드는 따로 이전해야 합니다.

Gradle을 Maven으로 바꾸는 온라인 도구가 있나요?

이 페이지에서 Gradle에서 Maven 방향의 의존성 조각을 변환할 수 있습니다. 전체 build.gradle을 완전한 POM으로 만들지는 않으며 저장소, 게시 설정, 모듈 구조는 별도로 다뤄야 합니다.

답을 찾지 못하셨나요?

새 선언을 프로젝트에서 검토하세요

Maven Gradle 변환으로 최신 결과를 만들고 매핑 안내와 개수를 확인한 뒤 올바른 dependencies 블록에 복사하세요.