Skip to content

Latest commit

 

History

History
103 lines (75 loc) · 2.53 KB

File metadata and controls

103 lines (75 loc) · 2.53 KB

Contributing to flutter-maven-plugin

Development Environment

Required Tools

Tool Version Download
Java JDK 21+ Azul Zulu JDK
Maven 3.9.4+ Apache Maven or use the included ./mvnw wrapper

Verifying Your Setup

Check Java:

java -version
# Should show: openjdk version "21.x.x" ...

Check Maven:

mvn -version
# Should show: Apache Maven 3.9.x ...

Code Structure

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
Loading

Build Commands

# 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 test

Submitting an Issue

Before 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 -version and mvn -version
  • Your pom.xml configuration (or .flattened-pom.xml if 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.

File a new issue

Submitting a Pull Request

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.