
안드로이드에 멀티 모듈 아키텍쳐를 사용함에 있어서, 주로 안드로이드와 관련된 기능이 필요하기 때문에 대부분 안드로이드 라이브러리 또는 앱 모듈로 생성하게 된다.
하지만 자바 또는 코틀린만으로 이루어진 외부 라이브러리를 쓰거나 안드로이드의 기능이 필요없는 경우, 불필요한 안드로이드 의존성을 넣기보단 호환가능한 순수 자바/코틀린 라이브러리로 생성하는 것이 더 나을 것이다.

새 모듈 생성을 선택한 후, Java or Kotlin Library를 선택하면 된다.
멀티 모듈 구조로 프로젝트를 설계했고 별도의 의존성 관리를 위한 빌드로직을 가지고 있다면, 이러한 자바/코틀린 라이브러리 또한 플러그인을 만들어 관리할 수 있다.
class KotlinLibraryConventionPlugin : Plugin<Project> {
override fun apply(target: Project) {
with(target) {
with(pluginManager) {
apply("org.jetbrains.kotlin.jvm")
}
configureKotlinJvm()
}
}
}
internal fun Project.configureKotlinJvm() {
extensions.configure<JavaPluginExtension> {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
configure<KotlinJvmProjectExtension> {
compilerOptions.jvmTarget = JvmTarget.JVM_17
}
}
코틀린 라이브러리를 모델 관리용도로만 쓸 생각이기 때문에 추가적인 의존성 없이 담백하게 자바 버전만 잘 관리해주면 된다.
plugins {
alias(libs.plugins.module.kotlin.library)
}
플러그인을 등록 후, 해당 모듈에 적용해주기만 하면 된다.