diff --git a/pkgs/jnigen/bin/download_maven_jars.dart b/pkgs/jnigen/bin/download_maven_jars.dart index 9ded7d7c08..a59c59cdf4 100644 --- a/pkgs/jnigen/bin/download_maven_jars.dart +++ b/pkgs/jnigen/bin/download_maven_jars.dart @@ -7,6 +7,7 @@ import 'dart:io'; import 'package:jnigen/jnigen.dart'; import 'package:jnigen/src/tools/gradle_tools.dart'; import 'package:jnigen/tools.dart'; +import 'package:path/path.dart'; /// Downloads maven dependencies downloaded by equivalent jnigen invocation. /// @@ -17,8 +18,18 @@ void main(List args) async { if (mavenDownloads != null) { await GradleTools.downloadMavenSources( GradleTools.deps(mavenDownloads.sourceDeps), mavenDownloads.sourceDir); + // Include sources in jar download to make sure transitive + // dependencies are included await GradleTools.downloadMavenJars( - GradleTools.deps(mavenDownloads.jarOnlyDeps), mavenDownloads.jarDir); + GradleTools.deps( + mavenDownloads.jarOnlyDeps + mavenDownloads.sourceDeps), + mavenDownloads.jarDir); + // // remove duplicated jars + for (var dep in mavenDownloads.sourceDeps) { + final filename = + MavenDependency.fromString(dep).filename(isSource: false); + File(join(mavenDownloads.jarDir, filename)).deleteSync(); + } await Directory(mavenDownloads.jarDir) .list() .map((entry) => entry.path) diff --git a/pkgs/jnigen/lib/src/summary/summary.dart b/pkgs/jnigen/lib/src/summary/summary.dart index 97d7fe7ea4..4890eb34f8 100644 --- a/pkgs/jnigen/lib/src/summary/summary.dart +++ b/pkgs/jnigen/lib/src/summary/summary.dart @@ -6,6 +6,8 @@ import 'dart:async'; import 'dart:convert'; import 'dart:io'; +import 'package:path/path.dart'; + import '../../tools.dart'; import '../config/config.dart'; import '../elements/elements.dart'; @@ -125,8 +127,17 @@ Future getSummary(Config config) async { await Directory(jarPath).create(recursive: true); await GradleTools.downloadMavenSources( GradleTools.deps(mavenDl.sourceDeps), mavenDl.sourceDir); + // Include sources in jar download to make sure transitive + // dependencies are included await GradleTools.downloadMavenJars( - GradleTools.deps(mavenDl.jarOnlyDeps), mavenDl.jarDir); + GradleTools.deps(mavenDl.jarOnlyDeps + mavenDl.sourceDeps), + mavenDl.jarDir); + for (var dep in mavenDl.sourceDeps) { + log.info(dep); + final filename = + MavenDependency.fromString(dep).filename(isSource: false); + File(join(mavenDl.jarDir, filename)).deleteSync(); + } extraJars.addAll(await Directory(jarPath) .list() .where((entry) => entry.path.endsWith('.jar'))