| Tool | Version | Download |
|---|---|---|
| Java JDK | 21+ | Azul Zulu JDK |
| Maven | 3.9.4+ | Apache Maven or use the included ./mvnw wrapper |
Check Java:
java -version
# Should show: openjdk version "21.x.x" ...Check Maven:
mvn -version
# Should show: Apache Maven 3.9.x ...This project follows a standard Maven project layout for a single-module Maven plugin.
graph TD
subgraph "mojos.flutter — Maven Entry Points"
A[AbstractFlutterMojo]
B[InstallFlutterMojo]
C[FlutterMojo]
end
subgraph "flutter — Core Logic"
D[FlutterPluginFactory]
E[FlutterInstaller]
F[FlutterExecutor]
G[DefaultFlutterTaskRunner]
H[Platform / OS / Architecture]
I[ProcessExecutor]
end
subgraph "api — Interfaces & Utilities"
J[FileDownloader / ArchiveExtractor]
K[CacheResolver implementations]
L[ProxyConfig]
M[Exception hierarchy]
N[MojoUtils / ArgumentsParser]
end
B --> A
C --> A
A --> D
D --> E
D --> G
E --> J
E --> K
G --> F
F --> I
E --> F
# Run tests
mvn clean test
# Full build (compile, test, package, install to local repo)
mvn clean install
# Build without tests
mvn clean install -DskipTests
# Run with debug output
mvn -X clean testBefore submitting a new issue, search the issue tracker first — the problem may already be reported or resolved.
When filing an issue, include:
- Output of
java -versionandmvn -version - Your
pom.xmlconfiguration (or.flattened-pom.xmlif applicable) - A minimal reproduction case that demonstrates the failure
A minimal reproduction helps us confirm bugs quickly and ensures we're fixing the right problem.
This project follows GitHub's standard forking model. Fork the repository, make your changes, and submit a pull request.
For details about the CI/CD pipeline and branching strategy, see the CI Flow documentation.