Dagger
Search

java

JVM toolchain (the JDK plus the Maven and Gradle build tools) so downstream
pipelines can compile, test, and package Java projects without re-inventing
JDK pinning, build-tool selection, and cache plumbing.

The JDK version is pinned via New(version) or inferred from the source's
.java-version, then pom.xml, then build.gradle(.kts); it falls back to the
module-pinned LTS default. Maven and Gradle are surfaced as cooperating
objects via Java.Maven / Java.Gradle. The build-tool version is not taken
from New(): an in-repo wrapper (mvnw/gradlew) is used when present, pinning
the tool per-repo; disableWrapper forces the image's system tool.

Installation

dagger install github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453

Entrypoint

Return Type
Java !
Arguments
NameTypeDefault ValueDescription
versionString -No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
func (m *MyModule) Example() *dagger.Java  {
	return dag.
			Java()
}
@function
def example() -> dagger.Java:
	return (
		dag.java()
	)
@func()
example(): Java {
	return dag
		.java()
}

Types

Java 🔗

Java wraps the JVM toolchain as Dagger functions. Construct via New(); call Container() for the prepared JDK container, ToolVersion() for the pinned JDK banner, Run() to run a jar, or Maven()/Gradle() for the build-tool objects.

version() 🔗

Version is the pinned JDK major version (e.g. “21”). Empty means infer from source (.java-version, then pom.xml / build.gradle); falls back to the module-pinned LTS default.

Return Type
String !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 version
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			Java().
			Version(ctx)
}
@function
async def example() -> str:
	return await (
		dag.java()
		.version()
	)
@func()
async example(): Promise<string> {
	return dag
		.java()
		.version()
}

container() 🔗

Container returns the prepared JDK container with source mounted at /work and the working directory set to /work. Use this as an escape hatch when a JVM command isn’t covered by the typed helpers.

The base image is eclipse-temurin:-jdk where jdk comes from New() or, when New(“”) was used, from source (.java-version, then pom.xml, then build.gradle(.kts)), falling back to the module-pinned LTS default. The signature takes ctx + returns error because source inspection requires async I/O.

Return Type
Container !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 container --source DIR_PATH
func (m *MyModule) Example(source *dagger.Directory) *dagger.Container  {
	return dag.
			Java().
			Container(source)
}
@function
def example(source: dagger.Directory) -> dagger.Container:
	return (
		dag.java()
		.container(source)
	)
@func()
example(source: Directory): Container {
	return dag
		.java()
		.container(source)
}

gradle() 🔗

Gradle returns a Gradle build-tool object bound to source. The JDK pin from New() (if any) is propagated; an unpinned Java infers the JDK from source. disableWrapper forces the image’s system gradle even when an in-repo gradlew is present.

Return Type
Gradle !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
disableWrapperBoolean !falseNo description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle --source DIR_PATH --disable-wrapper boolean
func (m *MyModule) Example(source *dagger.Directory, disableWrapper bool) *dagger.JavaGradle  {
	return dag.
			Java().
			Gradle(source, disableWrapper)
}
@function
def example(source: dagger.Directory, disablewrapper: bool) -> dagger.JavaGradle:
	return (
		dag.java()
		.gradle(source, disablewrapper)
	)
@func()
example(source: Directory, disableWrapper: boolean): JavaGradle {
	return dag
		.java()
		.gradle(source, disableWrapper)
}

maven() 🔗

Maven returns a Maven build-tool object bound to source. The JDK pin from New() (if any) is propagated; an unpinned Java infers the JDK from source. disableWrapper forces the image’s system mvn even when an in-repo mvnw is present.

Return Type
Maven !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
disableWrapperBoolean !falseNo description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven --source DIR_PATH --disable-wrapper boolean
func (m *MyModule) Example(source *dagger.Directory, disableWrapper bool) *dagger.JavaMaven  {
	return dag.
			Java().
			Maven(source, disableWrapper)
}
@function
def example(source: dagger.Directory, disablewrapper: bool) -> dagger.JavaMaven:
	return (
		dag.java()
		.maven(source, disablewrapper)
	)
@func()
example(source: Directory, disableWrapper: boolean): JavaMaven {
	return dag
		.java()
		.maven(source, disableWrapper)
}

run() 🔗

Run runs java -jar <jar> [args...] against the supplied source and returns the program’s stdout. jar is the path to the runnable jar within source.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
sourceDirectory !-No description provided
jarString !-No description provided
args[String ! ] -No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 run --source DIR_PATH --jar string
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, jar string) string  {
	return dag.
			Java().
			Run(ctx, source, jar)
}
@function
async def example(source: dagger.Directory, jar: str) -> str:
	return await (
		dag.java()
		.run(source, jar)
	)
@func()
async example(source: Directory, jar: string): Promise<string> {
	return dag
		.java()
		.run(source, jar)
}

toolVersion() 🔗

ToolVersion returns the JDK version banner (java -version) for the pinned JDK. It is source-less: the version comes from New() or the module-pinned LTS default.

Return Type
String !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 tool-version
func (m *MyModule) Example(ctx context.Context) string  {
	return dag.
			Java().
			Toolversion(ctx)
}
@function
async def example() -> str:
	return await (
		dag.java()
		.toolversion()
	)
@func()
async example(): Promise<string> {
	return dag
		.java()
		.toolVersion()
}

Gradle 🔗

Gradle wraps the Gradle build lifecycle as Dagger functions. Construct via Java.Gradle(). The container is gradle:-jdk with ~/.gradle/caches mounted as a shared cache volume; an in-repo gradlew is used unless DisableWrapper forces the image’s system gradle. Every invocation passes –no-daemon for reproducibility.

assemble() 🔗

Assemble runs gradle assemble and returns the build/libs directory (the built jar lands there).

Return Type
Directory !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle --source DIR_PATH --disable-wrapper boolean \
 assemble
func (m *MyModule) Example(source *dagger.Directory, disableWrapper bool) *dagger.Directory  {
	return dag.
			Java().
			Gradle(source, disableWrapper).
			Assemble()
}
@function
def example(source: dagger.Directory, disablewrapper: bool) -> dagger.Directory:
	return (
		dag.java()
		.gradle(source, disablewrapper)
		.assemble()
	)
@func()
example(source: Directory, disableWrapper: boolean): Directory {
	return dag
		.java()
		.gradle(source, disableWrapper)
		.assemble()
}

build() 🔗

Build runs gradle build and returns the build directory.

Return Type
Directory !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle --source DIR_PATH --disable-wrapper boolean \
 build
func (m *MyModule) Example(source *dagger.Directory, disableWrapper bool) *dagger.Directory  {
	return dag.
			Java().
			Gradle(source, disableWrapper).
			Build()
}
@function
def example(source: dagger.Directory, disablewrapper: bool) -> dagger.Directory:
	return (
		dag.java()
		.gradle(source, disablewrapper)
		.build()
	)
@func()
example(source: Directory, disableWrapper: boolean): Directory {
	return dag
		.java()
		.gradle(source, disableWrapper)
		.build()
}

ci() 🔗

Ci returns a new pipeline builder bound to this Gradle tool object.

Return Type
GradleCi !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle --source DIR_PATH --disable-wrapper boolean \
 ci
func (m *MyModule) Example(source *dagger.Directory, disableWrapper bool) *dagger.JavaGradleCi  {
	return dag.
			Java().
			Gradle(source, disableWrapper).
			Ci()
}
@function
def example(source: dagger.Directory, disablewrapper: bool) -> dagger.JavaGradleCi:
	return (
		dag.java()
		.gradle(source, disablewrapper)
		.ci()
	)
@func()
example(source: Directory, disableWrapper: boolean): JavaGradleCi {
	return dag
		.java()
		.gradle(source, disableWrapper)
		.ci()
}

container() 🔗

Container returns the prepared Gradle container with source mounted at /work, the shared gradle-caches-cache mounted at ~/.gradle/caches (owned by the gradle user), GRADLE_USER_HOME set, and the working directory set to /work.

Return Type
Container !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle --source DIR_PATH --disable-wrapper boolean \
 container
func (m *MyModule) Example(source *dagger.Directory, disableWrapper bool) *dagger.Container  {
	return dag.
			Java().
			Gradle(source, disableWrapper).
			Container()
}
@function
def example(source: dagger.Directory, disablewrapper: bool) -> dagger.Container:
	return (
		dag.java()
		.gradle(source, disablewrapper)
		.container()
	)
@func()
example(source: Directory, disableWrapper: boolean): Container {
	return dag
		.java()
		.gradle(source, disableWrapper)
		.container()
}

tasks() 🔗

Tasks runs the given Gradle tasks (plus any extra args) against the source and returns stdout. It dispatches to the in-repo gradlew when present unless DisableWrapper is set, and always passes –no-daemon.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
tasks[String ! ] !-No description provided
args[String ! ] -No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle --source DIR_PATH --disable-wrapper boolean \
 tasks --tasks string1 --tasks string2
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, disableWrapper bool, tasks []string) string  {
	return dag.
			Java().
			Gradle(source, disableWrapper).
			Tasks(ctx, tasks)
}
@function
async def example(source: dagger.Directory, disablewrapper: bool, tasks: List[str]) -> str:
	return await (
		dag.java()
		.gradle(source, disablewrapper)
		.tasks(tasks)
	)
@func()
async example(source: Directory, disableWrapper: boolean, tasks: string[]): Promise<string> {
	return dag
		.java()
		.gradle(source, disableWrapper)
		.tasks(tasks)
}

test() 🔗

Test runs gradle test and returns stdout.

Return Type
String !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle --source DIR_PATH --disable-wrapper boolean \
 test
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, disableWrapper bool) string  {
	return dag.
			Java().
			Gradle(source, disableWrapper).
			Test(ctx)
}
@function
async def example(source: dagger.Directory, disablewrapper: bool) -> str:
	return await (
		dag.java()
		.gradle(source, disablewrapper)
		.test()
	)
@func()
async example(source: Directory, disableWrapper: boolean): Promise<string> {
	return dag
		.java()
		.gradle(source, disableWrapper)
		.test()
}

Maven 🔗

Maven wraps the Maven build lifecycle as Dagger functions. Construct via Java.Maven(). The container is maven:-eclipse-temurin- with ~/.m2/repository mounted as a shared cache volume; an in-repo mvnw is used unless DisableWrapper forces the image’s system mvn.

ci() 🔗

Ci returns a new pipeline builder bound to this Maven tool object.

Return Type
MavenCi !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven --source DIR_PATH --disable-wrapper boolean \
 ci
func (m *MyModule) Example(source *dagger.Directory, disableWrapper bool) *dagger.JavaMavenCi  {
	return dag.
			Java().
			Maven(source, disableWrapper).
			Ci()
}
@function
def example(source: dagger.Directory, disablewrapper: bool) -> dagger.JavaMavenCi:
	return (
		dag.java()
		.maven(source, disablewrapper)
		.ci()
	)
@func()
example(source: Directory, disableWrapper: boolean): JavaMavenCi {
	return dag
		.java()
		.maven(source, disableWrapper)
		.ci()
}

compile() 🔗

Compile runs mvn compile and returns the target directory (compiled classes land under target/classes).

Return Type
Directory !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven --source DIR_PATH --disable-wrapper boolean \
 compile
func (m *MyModule) Example(source *dagger.Directory, disableWrapper bool) *dagger.Directory  {
	return dag.
			Java().
			Maven(source, disableWrapper).
			Compile()
}
@function
def example(source: dagger.Directory, disablewrapper: bool) -> dagger.Directory:
	return (
		dag.java()
		.maven(source, disablewrapper)
		.compile()
	)
@func()
example(source: Directory, disableWrapper: boolean): Directory {
	return dag
		.java()
		.maven(source, disableWrapper)
		.compile()
}

container() 🔗

Container returns the prepared Maven container with source mounted at /work, the shared maven-repository-cache mounted at /root/.m2/repository, and the working directory set to /work.

Return Type
Container !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven --source DIR_PATH --disable-wrapper boolean \
 container
func (m *MyModule) Example(source *dagger.Directory, disableWrapper bool) *dagger.Container  {
	return dag.
			Java().
			Maven(source, disableWrapper).
			Container()
}
@function
def example(source: dagger.Directory, disablewrapper: bool) -> dagger.Container:
	return (
		dag.java()
		.maven(source, disablewrapper)
		.container()
	)
@func()
example(source: Directory, disableWrapper: boolean): Container {
	return dag
		.java()
		.maven(source, disableWrapper)
		.container()
}

goals() 🔗

Goals runs the given Maven goals (plus any extra args) against the source and returns stdout. It dispatches to the in-repo mvnw when present unless DisableWrapper is set.

Return Type
String !
Arguments
NameTypeDefault ValueDescription
goals[String ! ] !-No description provided
args[String ! ] -No description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven --source DIR_PATH --disable-wrapper boolean \
 goals --goals string1 --goals string2
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, disableWrapper bool, goals []string) string  {
	return dag.
			Java().
			Maven(source, disableWrapper).
			Goals(ctx, goals)
}
@function
async def example(source: dagger.Directory, disablewrapper: bool, goals: List[str]) -> str:
	return await (
		dag.java()
		.maven(source, disablewrapper)
		.goals(goals)
	)
@func()
async example(source: Directory, disableWrapper: boolean, goals: string[]): Promise<string> {
	return dag
		.java()
		.maven(source, disableWrapper)
		.goals(goals)
}

package() 🔗

Package runs mvn package and returns the target directory (the built jar lands under target/). Tests run by default; skipTests passes -DskipTests so test sources still compile but are not executed.

Return Type
Directory !
Arguments
NameTypeDefault ValueDescription
skipTestsBoolean !falseNo description provided
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven --source DIR_PATH --disable-wrapper boolean \
 package --skip-tests boolean
func (m *MyModule) Example(source *dagger.Directory, disableWrapper bool, skipTests bool) *dagger.Directory  {
	return dag.
			Java().
			Maven(source, disableWrapper).
			Package(skipTests)
}
@function
def example(source: dagger.Directory, disablewrapper: bool, skiptests: bool) -> dagger.Directory:
	return (
		dag.java()
		.maven(source, disablewrapper)
		.package(skiptests)
	)
@func()
example(source: Directory, disableWrapper: boolean, skipTests: boolean): Directory {
	return dag
		.java()
		.maven(source, disableWrapper)
		.package(skipTests)
}

test() 🔗

Test runs mvn test and returns stdout.

Return Type
String !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven --source DIR_PATH --disable-wrapper boolean \
 test
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, disableWrapper bool) string  {
	return dag.
			Java().
			Maven(source, disableWrapper).
			Test(ctx)
}
@function
async def example(source: dagger.Directory, disablewrapper: bool) -> str:
	return await (
		dag.java()
		.maven(source, disablewrapper)
		.test()
	)
@func()
async example(source: Directory, disableWrapper: boolean): Promise<string> {
	return dag
		.java()
		.maven(source, disableWrapper)
		.test()
}

verify() 🔗

Verify runs mvn verify and returns stdout.

Return Type
String !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven --source DIR_PATH --disable-wrapper boolean \
 verify
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, disableWrapper bool) string  {
	return dag.
			Java().
			Maven(source, disableWrapper).
			Verify(ctx)
}
@function
async def example(source: dagger.Directory, disablewrapper: bool) -> str:
	return await (
		dag.java()
		.maven(source, disablewrapper)
		.verify()
	)
@func()
async example(source: Directory, disableWrapper: boolean): Promise<string> {
	return dag
		.java()
		.maven(source, disableWrapper)
		.verify()
}

GradleCi 🔗

GradleCi is a chained builder for a standardized Gradle CI pipeline. Construct via Gradle.Ci(); enable check stages via the With* methods; call Run to execute checks-then-assemble, or Check to run only the parallel checks.

Stage 1 runs the enabled checks (Test, Check) in parallel via github.com/dagger/dagger/util/parallel; errors are aggregated. Stage 2 runs gradle assemble (which never runs tests) and Run returns the produced build/libs directory for downstream pipelines to compose.

The builder reuses the parent Gradle lifecycle helpers, so wrapper handling, JDK inference, and cache mounts are inherited.

check() 🔗

Check runs the enabled check stages (Test, Check) in parallel via github.com/dagger/dagger/util/parallel and returns the aggregated error. Use when callers want to run the checks independently of the build.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle --source DIR_PATH --disable-wrapper boolean \
 ci \
 check
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, disableWrapper bool)   {
	return dag.
			Java().
			Gradle(source, disableWrapper).
			Ci().
			Check(ctx)
}
@function
async def example(source: dagger.Directory, disablewrapper: bool) -> None:
	return await (
		dag.java()
		.gradle(source, disablewrapper)
		.ci()
		.check()
	)
@func()
async example(source: Directory, disableWrapper: boolean): Promise<void> {
	return dag
		.java()
		.gradle(source, disableWrapper)
		.ci()
		.check()
}

run() 🔗

Run executes the pipeline: stage 1 (Check) → stage 2 (gradle assemble). Returns the produced build/libs directory. On stage-1 failure, returns the aggregated error from Check and a nil directory (the build is skipped).

Return Type
Directory !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle --source DIR_PATH --disable-wrapper boolean \
 ci \
 run
func (m *MyModule) Example(source *dagger.Directory, disableWrapper bool) *dagger.Directory  {
	return dag.
			Java().
			Gradle(source, disableWrapper).
			Ci().
			Run()
}
@function
def example(source: dagger.Directory, disablewrapper: bool) -> dagger.Directory:
	return (
		dag.java()
		.gradle(source, disablewrapper)
		.ci()
		.run()
	)
@func()
example(source: Directory, disableWrapper: boolean): Directory {
	return dag
		.java()
		.gradle(source, disableWrapper)
		.ci()
		.run()
}

withCheck() 🔗

WithCheck enables the gradle check check stage.

Return Type
GradleCi !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle --source DIR_PATH --disable-wrapper boolean \
 ci \
 with-check
func (m *MyModule) Example(source *dagger.Directory, disableWrapper bool) *dagger.JavaGradleCi  {
	return dag.
			Java().
			Gradle(source, disableWrapper).
			Ci().
			Withcheck()
}
@function
def example(source: dagger.Directory, disablewrapper: bool) -> dagger.JavaGradleCi:
	return (
		dag.java()
		.gradle(source, disablewrapper)
		.ci()
		.withcheck()
	)
@func()
example(source: Directory, disableWrapper: boolean): JavaGradleCi {
	return dag
		.java()
		.gradle(source, disableWrapper)
		.ci()
		.withCheck()
}

withTest() 🔗

WithTest enables the gradle test check stage.

Return Type
GradleCi !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 gradle --source DIR_PATH --disable-wrapper boolean \
 ci \
 with-test
func (m *MyModule) Example(source *dagger.Directory, disableWrapper bool) *dagger.JavaGradleCi  {
	return dag.
			Java().
			Gradle(source, disableWrapper).
			Ci().
			Withtest()
}
@function
def example(source: dagger.Directory, disablewrapper: bool) -> dagger.JavaGradleCi:
	return (
		dag.java()
		.gradle(source, disablewrapper)
		.ci()
		.withtest()
	)
@func()
example(source: Directory, disableWrapper: boolean): JavaGradleCi {
	return dag
		.java()
		.gradle(source, disableWrapper)
		.ci()
		.withTest()
}

MavenCi 🔗

MavenCi is a chained builder for a standardized Maven CI pipeline. Construct via Maven.Ci(); enable check stages via the With* methods; call Run to execute checks-then-package, or Check to run only the parallel checks.

Stage 1 runs the enabled checks (Test, Verify) in parallel via github.com/dagger/dagger/util/parallel; errors are aggregated. Stage 2 runs mvn package -DskipTests (the checks already covered testing) and Run returns the produced target/ directory for downstream pipelines to compose.

The builder reuses the parent Maven lifecycle helpers, so wrapper handling, JDK inference, and cache mounts are inherited.

check() 🔗

Check runs the enabled check stages (Test, Verify) in parallel via github.com/dagger/dagger/util/parallel and returns the aggregated error. Use when callers want to run the checks independently of packaging.

Return Type
Void !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven --source DIR_PATH --disable-wrapper boolean \
 ci \
 check
func (m *MyModule) Example(ctx context.Context, source *dagger.Directory, disableWrapper bool)   {
	return dag.
			Java().
			Maven(source, disableWrapper).
			Ci().
			Check(ctx)
}
@function
async def example(source: dagger.Directory, disablewrapper: bool) -> None:
	return await (
		dag.java()
		.maven(source, disablewrapper)
		.ci()
		.check()
	)
@func()
async example(source: Directory, disableWrapper: boolean): Promise<void> {
	return dag
		.java()
		.maven(source, disableWrapper)
		.ci()
		.check()
}

run() 🔗

Run executes the pipeline: stage 1 (Check) → stage 2 (mvn package -DskipTests). Returns the produced target/ directory. On stage-1 failure, returns the aggregated error from Check and a nil directory (packaging is skipped).

Return Type
Directory !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven --source DIR_PATH --disable-wrapper boolean \
 ci \
 run
func (m *MyModule) Example(source *dagger.Directory, disableWrapper bool) *dagger.Directory  {
	return dag.
			Java().
			Maven(source, disableWrapper).
			Ci().
			Run()
}
@function
def example(source: dagger.Directory, disablewrapper: bool) -> dagger.Directory:
	return (
		dag.java()
		.maven(source, disablewrapper)
		.ci()
		.run()
	)
@func()
example(source: Directory, disableWrapper: boolean): Directory {
	return dag
		.java()
		.maven(source, disableWrapper)
		.ci()
		.run()
}

withTest() 🔗

WithTest enables the mvn test check stage.

Return Type
MavenCi !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven --source DIR_PATH --disable-wrapper boolean \
 ci \
 with-test
func (m *MyModule) Example(source *dagger.Directory, disableWrapper bool) *dagger.JavaMavenCi  {
	return dag.
			Java().
			Maven(source, disableWrapper).
			Ci().
			Withtest()
}
@function
def example(source: dagger.Directory, disablewrapper: bool) -> dagger.JavaMavenCi:
	return (
		dag.java()
		.maven(source, disablewrapper)
		.ci()
		.withtest()
	)
@func()
example(source: Directory, disableWrapper: boolean): JavaMavenCi {
	return dag
		.java()
		.maven(source, disableWrapper)
		.ci()
		.withTest()
}

withVerify() 🔗

WithVerify enables the mvn verify check stage.

Return Type
MavenCi !
Example
dagger -m github.com/z5labs/devex/daggerverse/java@a17bf411228ae3d544c7c18bcf08dd04c295d453 call \
 maven --source DIR_PATH --disable-wrapper boolean \
 ci \
 with-verify
func (m *MyModule) Example(source *dagger.Directory, disableWrapper bool) *dagger.JavaMavenCi  {
	return dag.
			Java().
			Maven(source, disableWrapper).
			Ci().
			Withverify()
}
@function
def example(source: dagger.Directory, disablewrapper: bool) -> dagger.JavaMavenCi:
	return (
		dag.java()
		.maven(source, disablewrapper)
		.ci()
		.withverify()
	)
@func()
example(source: Directory, disableWrapper: boolean): JavaMavenCi {
	return dag
		.java()
		.maven(source, disableWrapper)
		.ci()
		.withVerify()
}