mirror of
https://github.com/ethauvin/kobalt.git
synced 2025-04-26 08:27:12 -07:00
Prevent duplicate dependency tags in the .pom.
This commit is contained in:
parent
bee7bd84dd
commit
736062ab8b
1 changed files with 11 additions and 1 deletions
|
@ -1,6 +1,7 @@
|
||||||
package com.beust.kobalt.maven
|
package com.beust.kobalt.maven
|
||||||
|
|
||||||
import com.beust.kobalt.SystemProperties
|
import com.beust.kobalt.SystemProperties
|
||||||
|
import com.beust.kobalt.api.IClasspathDependency
|
||||||
import com.beust.kobalt.api.Project
|
import com.beust.kobalt.api.Project
|
||||||
import com.beust.kobalt.misc.KFiles
|
import com.beust.kobalt.misc.KFiles
|
||||||
import com.beust.kobalt.misc.kobaltLog
|
import com.beust.kobalt.misc.kobaltLog
|
||||||
|
@ -62,8 +63,17 @@ class PomGenerator @Inject constructor(@Assisted val project: Project) {
|
||||||
//
|
//
|
||||||
pom.dependencies = arrayListOf<org.apache.maven.model.Dependency>()
|
pom.dependencies = arrayListOf<org.apache.maven.model.Dependency>()
|
||||||
|
|
||||||
|
/**
|
||||||
|
* optional and provided dependencies are added both to the compile dependencies (since they are needed
|
||||||
|
* to build the project) and to their respective list as well (for POM generation). Make sure they
|
||||||
|
* don't get added twice to the .pom in such cases.
|
||||||
|
*/
|
||||||
|
fun providedOrOptional(dep: IClasspathDependency) =
|
||||||
|
project.compileProvidedDependencies.contains(dep) ||
|
||||||
|
project.optionalDependencies.contains(dep)
|
||||||
|
|
||||||
// Compile dependencies
|
// Compile dependencies
|
||||||
project.compileDependencies.forEach { dep ->
|
project.compileDependencies.filterNot(::providedOrOptional).forEach { dep ->
|
||||||
pom.dependencies.add(dep.toMavenDependencies())
|
pom.dependencies.add(dep.toMavenDependencies())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue