コンテンツにスキップ

Java

設定例

[project]
name = "my-java-app"
root = "."
languages = ["java"]
[resolve.java]
module_name = "com.example.myapp"
[[layers]]
name = "domain"
paths = ["src/domain/**"]
dependency_mode = "opt-in"
allow = []
external_mode = "opt-out"
[[layers]]
name = "usecase"
paths = ["src/usecase/**"]
dependency_mode = "opt-in"
allow = ["domain"]
external_mode = "opt-out"
[[layers]]
name = "infrastructure"
paths = ["src/infrastructure/**"]
dependency_mode = "opt-in"
allow = ["domain"]
external_mode = "opt-in"
external_allow = ["java.util.List", "java.util.Map"]

mille init の動作

pom.xml(Maven)または build.gradle + settings.gradle(Gradle)を読み取り module_name を自動設定します。レイヤーパスは **/layer/** グロブを使用するため、Maven の src/main/java/com/example/myapp/domain/ のような深いレイアウトにも対応します。

mille init 出力例

Detected languages: java
Scanning imports...
Inferred layer structure:
domain ← (no internal dependencies)
infrastructure → domain
external: java.util.List
usecase → domain
main → domain, infrastructure, usecase
Generated 'mille.toml'

インポートの分類

インポート分類
import com.example.myapp.domain.User内部(module_name で始まる)
import static com.example.myapp.util.Helper.method内部
import java.util.List外部(標準ライブラリ)
import org.springframework.*外部

ワイルドカードインポート(import java.util.*)は現時点では未対応です。

Maven / Gradle の自動設定

ビルドツール自動設定
Mavenpom.xmlgroupId.artifactIdmodule_name に使用
Gradlebuild.gradlegroup + settings.gradlerootProject.name を使用