コンテンツにスキップ

mille init

概要

Terminal window
mille init
mille init ./path/to/project # 対象ディレクトリを指定

プロジェクト内の import 文を解析してレイヤー構造と依存関係を推論し、mille.toml を自動生成します。位置引数でプロジェクトディレクトリを指定できます。省略時はカレントディレクトリ(.)が対象です。

オプション

フラグデフォルト説明
--output <path>mille.toml出力先ファイルパス
--forcefalse既存ファイルを確認なしで上書き
--depth <N>自動レイヤー検出の深さ

自動深さ検出

mille init は深さ 1〜6 を試し、src / lib / app などのソースレイアウトルートをスキップしながら、2〜8 個のレイヤー候補が得られる最初の深さを自動選択します。

例: src/domain/entity, src/domain/repository, src/usecase/ というプロジェクトでは深さ 2 が選ばれ、entityrepositorydomain にまとめられます。

--depth N で自動検出を上書きできます。

出力例

Detected languages: rust
Scanning imports...
Using layer depth: 2
Inferred layer structure:
domain ← (no internal dependencies)
usecase → domain
external: anyhow
infrastructure → domain
external: serde, tokio
Generated 'mille.toml'

モノレポでの命名

複数のサブプロジェクトに同名ディレクトリ(例: crawler/src/domainserver/src/domain)がある場合、mille init は区別するプレフィックスをつけます(crawler_domain, server_domain)。マージは手動で行います。

言語別の自動検出

言語自動検出する内容
Gogo.mod を読み取り [resolve.go] module_name を自動生成
Pythonsrc/ レイアウトを検出し package_namessrc を自動追加
Java/Kotlinpom.xml / build.gradle + settings.gradle を読み取り module_name を設定