From b80c996e05ba757430d57e93d129c84bcb813e5d Mon Sep 17 00:00:00 2001 From: Cedric Beust Date: Thu, 22 Sep 2016 11:12:19 -0700 Subject: [PATCH] Generate the correct pom file for provided(). --- .../com/beust/kobalt/api/IClasspathDependency.kt | 2 +- .../kotlin/com/beust/kobalt/maven/PomGenerator.kt | 15 +++++++++++++++ .../com/beust/kobalt/maven/aether/Aether.kt | 4 +++- .../kobalt/maven/dependency/FileDependency.kt | 3 ++- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/api/IClasspathDependency.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/api/IClasspathDependency.kt index f0b1f35f..e529d148 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/api/IClasspathDependency.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/api/IClasspathDependency.kt @@ -29,7 +29,7 @@ interface IClasspathDependency { val jarFile: Future /** Convert to a Maven model tag */ - fun toMavenDependencies() : Dependency + fun toMavenDependencies(scope: String? = null) : Dependency /** The list of dependencies for this element (not the transitive closure) */ fun directDependencies(): List diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/PomGenerator.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/PomGenerator.kt index e74b5258..fddfe657 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/PomGenerator.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/PomGenerator.kt @@ -72,6 +72,21 @@ class PomGenerator @Inject constructor(@Assisted val project: Project) { pom.dependencies.add(dep.toMavenDependencies()) } + // Provided dependencies + project.compileProvidedDependencies.forEach { dep -> + pom.dependencies.add(dep.toMavenDependencies("provided")) + } + + // Test dependencies + project.testDependencies.forEach { dep -> + pom.dependencies.add(dep.toMavenDependencies("test")) + } + + // Test provided dependencies + project.testProvidedDependencies.forEach { dep -> + pom.dependencies.add(dep.toMavenDependencies("test")) + } + // Project dependencies project.dependsOn.forEach { pom.dependencies.add(org.apache.maven.model.Dependency().apply { diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/Aether.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/Aether.kt index 02606673..20d5db60 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/Aether.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/aether/Aether.kt @@ -266,13 +266,15 @@ class AetherDependency(val artifact: Artifact, override val optional: Boolean = } } - override fun toMavenDependencies() : org.apache.maven.model.Dependency { + override fun toMavenDependencies(scope: String?) : org.apache.maven.model.Dependency { + val passedScope = scope val op = this.optional return org.apache.maven.model.Dependency().apply { groupId = artifact.groupId artifactId = artifact.artifactId version = artifact.version if (op) optional = op.toString() + if (passedScope != null) this.scope = passedScope } } diff --git a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/dependency/FileDependency.kt b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/dependency/FileDependency.kt index 0aa096f5..a271cf9a 100644 --- a/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/dependency/FileDependency.kt +++ b/modules/kobalt-plugin-api/src/main/kotlin/com/beust/kobalt/maven/dependency/FileDependency.kt @@ -19,9 +19,10 @@ open class FileDependency(open val fileName: String, override val optional: Bool override val jarFile = CompletedFuture(File(fileName)) - override fun toMavenDependencies(): Dependency { + override fun toMavenDependencies(scope: String?): Dependency { with(Dependency()) { systemPath = jarFile.get().absolutePath + this.scope = scope return this } }