【问题标题】:How to remove projectDependencies from pom?如何从 pom 中删除项目依赖项?
【发布时间】:2014-07-17 15:36:08
【问题描述】:

类似于:How to exclude library dependencies with explicit URL from generated pom?

我想从目标 pom 中删除项目依赖项,因为我使用 fat jar 合并它。

我尝试了projectDependencies in makePom := Nil,但看起来任务makePomroot/*:ivyModule 获取它的依赖项:

makePom -> ivyModule -> moduleSettings -> allDependencies -> projectDependencies

【问题讨论】:

标签: sbt


【解决方案1】:

您可以覆盖MakePomConfiguration 类上的process 字段,并提供一个函数从生成的pom.xml 中删除dependencies 元素。

build.sbt

import xml.{NodeSeq, Node => XNode, Elem}
import xml.transform.{RuleTransformer, RewriteRule}

libraryDependencies += "org.apache.derby" % "derby" % "10.4.1.3"

def dependenciesFilter(n: XNode) = new RuleTransformer(new RewriteRule {
  override def transform(n: XNode): NodeSeq = n match {
    case e: Elem if e.label == "dependencies" => NodeSeq.Empty
    case other => other
  }
}).transform(n).head

makePomConfiguration := makePomConfiguration.value.copy(process = dependenciesFilter)

【讨论】:

  • 只是删除引用的项目
猜你喜欢
  • 1970-01-01
  • 2017-06-07
  • 2021-02-27
  • 1970-01-01
  • 1970-01-01
  • 2017-12-31
  • 2015-02-23
  • 2018-05-10
  • 1970-01-01
相关资源
最近更新 更多