@@ -5,6 +5,7 @@ import org.gradle.api.artifacts.result.ResolvedComponentResult
55import org.gradle.api.artifacts.result.ResolvedDependencyResult
66import org.gradle.api.internal.artifacts.DefaultProjectComponentIdentifier
77import org.gradle.api.internal.artifacts.configurations.ResolveConfigurationDependenciesBuildOperationType
8+ import org.gradle.api.logging.Logging
89import org.gradle.github.GitHubDependencyGraphPlugin
910import org.gradle.github.dependencygraph.internal.model.ComponentCoordinates
1011import org.gradle.github.dependencygraph.internal.model.ResolvedComponent
@@ -28,11 +29,7 @@ abstract class DependencyExtractor :
2829 protected abstract val gitRef: String
2930 protected abstract val gitWorkspaceDirectory: Path
3031
31- /* *
32- * Can't use this as a proper input:
33- * https://github.com/gradle/gradle/issues/19562
34- */
35- private var fileWriter: DependencyFileWriter = DependencyFileWriter .create()
32+ var rootProjectBuildDirectory: File ? = null
3633
3734 private val gitHubRepositorySnapshotBuilder by lazy {
3835 GitHubRepositorySnapshotBuilder (
@@ -50,10 +47,6 @@ abstract class DependencyExtractor :
5047 println (" Creating: DependencyExtractorService" )
5148 }
5249
53- internal fun setRootProjectBuildDirectory (rootProjectBuildDirectory : File ) {
54- fileWriter = DependencyFileWriter .create(rootProjectBuildDirectory, dependencyGraphJobCorrelator)
55- }
56-
5750 override fun started (buildOperation : BuildOperationDescriptor , startEvent : OperationStartEvent ) {
5851 // This method will never be called when registered in a `BuildServiceRegistry` (ie. Gradle 6.1 & higher)
5952 // No-op
@@ -182,8 +175,19 @@ abstract class DependencyExtractor :
182175 }
183176 }
184177
185- private fun writeAndGetSnapshotFile (): File =
178+ private fun writeAndGetSnapshotFile () {
179+ if (rootProjectBuildDirectory == null ) {
180+ LOGGER .warn(" Unable to write dependency graph snapshot: target directory not known" )
181+ return
182+ }
183+ val outputFile = File (
184+ rootProjectBuildDirectory,
185+ " reports/github-dependency-graph-plugin/github-dependency-snapshot-${dependencyGraphJobCorrelator} .json"
186+ )
187+
188+ val fileWriter = DependencyFileWriter (outputFile)
186189 fileWriter.writeDependencyManifest(gitHubRepositorySnapshotBuilder.build())
190+ }
187191
188192 override fun close () {
189193 if (thrownExceptions.isNotEmpty()) {
@@ -203,6 +207,9 @@ abstract class DependencyExtractor :
203207 )
204208 }
205209 }
210+ companion object {
211+ private val LOGGER = Logging .getLogger(DependencyExtractor ::class .java)
212+ }
206213}
207214
208215private inline fun <reified D , reified R > handleBuildOperationTypeRaw (
0 commit comments