diff --git a/CHANGELOG_PENDING.md b/CHANGELOG_PENDING.md
index 60a767028ac..cda6510d441 100644
--- a/CHANGELOG_PENDING.md
+++ b/CHANGELOG_PENDING.md
@@ -6,5 +6,6 @@
  - Fix generation of untyped maps and array literals
  - Implement `InvokeOptionsBuilder` and `InvokeOutputOptionsBuilder`
  - Emit invoke options and invoke output options in generated programs
+ - Include explicit dependencies of invokes in their resulting output
 
 ### Bug Fixes
diff --git a/pkg/cmd/pulumi-language-java/testdata/projects/l2-invoke-options-depends-on/Pulumi.yaml b/pkg/cmd/pulumi-language-java/testdata/projects/l2-invoke-options-depends-on/Pulumi.yaml
new file mode 100644
index 00000000000..d3665e06c43
--- /dev/null
+++ b/pkg/cmd/pulumi-language-java/testdata/projects/l2-invoke-options-depends-on/Pulumi.yaml
@@ -0,0 +1,2 @@
+name: l2-invoke-options-depends-on
+runtime: java
diff --git a/pkg/cmd/pulumi-language-java/testdata/projects/l2-invoke-options-depends-on/pom.xml b/pkg/cmd/pulumi-language-java/testdata/projects/l2-invoke-options-depends-on/pom.xml
new file mode 100644
index 00000000000..238da07ebc6
--- /dev/null
+++ b/pkg/cmd/pulumi-language-java/testdata/projects/l2-invoke-options-depends-on/pom.xml
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+		<project xmlns="http://maven.apache.org/POM/4.0.0"
+				 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+				 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+			<modelVersion>4.0.0</modelVersion>
+
+			<groupId>com.pulumi</groupId>
+			<artifactId>l2-invoke-options-depends-on</artifactId>
+			<version>1.0-SNAPSHOT</version>
+
+			<properties>
+				<encoding>UTF-8</encoding>
+				<maven.compiler.source>11</maven.compiler.source>
+				<maven.compiler.target>11</maven.compiler.target>
+				<maven.compiler.release>11</maven.compiler.release>
+				<mainClass>generated_program.App</mainClass>
+				<mainArgs/>
+			</properties>
+			
+			<repositories>
+				<repository>
+					<id>repository-0</id>
+					<url>REPOSITORY</url>
+				</repository>
+			</repositories>
+
+			<dependencies>
+				<dependency>
+					<groupId>com.pulumi</groupId>
+					<artifactId>pulumi</artifactId>
+					<version>CORE.VERSION</version>
+				</dependency>
+				<dependency>
+					<groupId>com.pulumi</groupId>
+					<artifactId>simple-invoke</artifactId>
+					<version>10.0.0</version>
+				</dependency>
+			</dependencies>
+
+			<build>
+				<plugins>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-jar-plugin</artifactId>
+						<version>3.2.2</version>
+						<configuration>
+							<archive>
+								<manifest>
+									<addClasspath>true</addClasspath>
+									<mainClass>${mainClass}</mainClass>
+								</manifest>
+							</archive>
+						</configuration>
+					</plugin>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-assembly-plugin</artifactId>
+						<version>3.4.2</version>
+						<configuration>
+							<archive>
+								<manifest>
+									<addClasspath>true</addClasspath>
+									<mainClass>${mainClass}</mainClass>
+								</manifest>
+							</archive>
+							<descriptorRefs>
+								<descriptorRef>jar-with-dependencies</descriptorRef>
+							</descriptorRefs>
+						</configuration>
+						<executions>
+							<execution>
+								<id>make-my-jar-with-dependencies</id>
+								<phase>package</phase>
+								<goals>
+									<goal>single</goal>
+								</goals>
+							</execution>
+						</executions>
+					</plugin>
+					<plugin>
+						<groupId>org.codehaus.mojo</groupId>
+						<artifactId>exec-maven-plugin</artifactId>
+						<version>3.1.0</version>
+						<configuration>
+							<mainClass>${mainClass}</mainClass>
+							<commandlineArgs>${mainArgs}</commandlineArgs>
+						</configuration>
+					</plugin>
+					<plugin>
+						<groupId>org.apache.maven.plugins</groupId>
+						<artifactId>maven-wrapper-plugin</artifactId>
+						<version>3.1.1</version>
+						<configuration>
+							<mavenVersion>3.8.5</mavenVersion>
+						</configuration>
+					</plugin>
+				</plugins>
+			</build>
+		</project>
\ No newline at end of file
diff --git a/pkg/cmd/pulumi-language-java/testdata/projects/l2-invoke-options-depends-on/src/main/java/generated_program/App.java b/pkg/cmd/pulumi-language-java/testdata/projects/l2-invoke-options-depends-on/src/main/java/generated_program/App.java
new file mode 100644
index 00000000000..1929183f281
--- /dev/null
+++ b/pkg/cmd/pulumi-language-java/testdata/projects/l2-invoke-options-depends-on/src/main/java/generated_program/App.java
@@ -0,0 +1,43 @@
+package generated_program;
+
+import com.pulumi.Context;
+import com.pulumi.Pulumi;
+import com.pulumi.core.Output;
+import com.pulumi.simpleinvoke.Provider;
+import com.pulumi.simpleinvoke.StringResource;
+import com.pulumi.simpleinvoke.StringResourceArgs;
+import com.pulumi.simpleinvoke.SimpleinvokeFunctions;
+import com.pulumi.simpleinvoke.inputs.MyInvokeArgs;
+import com.pulumi.deployment.InvokeOutputOptions;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+
+public class App {
+    public static void main(String[] args) {
+        Pulumi.run(App::stack);
+    }
+
+    public static void stack(Context ctx) {
+        var explicitProvider = new Provider("explicitProvider");
+
+        var first = new StringResource("first", StringResourceArgs.builder()
+            .text("first hello")
+            .build());
+
+        final var data = SimpleinvokeFunctions.myInvoke(MyInvokeArgs.builder()
+            .value("hello")
+            .build(), (new InvokeOutputOptions.Builder())
+                .dependsOn(first)
+                .build());
+
+        var second = new StringResource("second", StringResourceArgs.builder()
+            .text(data.applyValue(_data -> _data.result()))
+            .build());
+
+        ctx.export("hello", data.applyValue(_data -> _data.result()));
+    }
+}
diff --git a/sdk/java/pulumi/src/main/java/com/pulumi/deployment/internal/DeploymentImpl.java b/sdk/java/pulumi/src/main/java/com/pulumi/deployment/internal/DeploymentImpl.java
index 95f31aa09f5..df89ec39693 100644
--- a/sdk/java/pulumi/src/main/java/com/pulumi/deployment/internal/DeploymentImpl.java
+++ b/sdk/java/pulumi/src/main/java/com/pulumi/deployment/internal/DeploymentImpl.java
@@ -568,7 +568,7 @@ public <T> Output<T> invoke(String token, TypeShape<T> targetType, InvokeArgs ar
                             } else {
                                 return packageRefFuture
                                     .thenCompose(packageRefString -> this.invokeRawAsync(token, serializedArgs, options, packageRefString))
-                                    .thenApply(result -> parseInvokeResponse(token, targetType, result));
+                                    .thenApply(result -> parseInvokeResponse(token, targetType, result).withDependencies(options.getDependsOn()));
                             }
                         });
                 }));