1

我目前正在使用作为compile任务一部分运行但希望对其进行修改的 SBT 插件。已联系作者,但没有回复。

谁能给我一个将功能导入我的项目的步骤的高级概述,以便我可以自定义它?它是一个单一的对象。

  • 如果对象“挂钩”到compile任务中,那么我认为它仍然应该扩展plugin

  • 目前,我有一个编译错误import sbt.Keys._

import sbt._作品

import sbt.Keys._对象键不是包集的成员。

我需要 SBT jar 作为我项目的非托管依赖项吗?

build.properties 包含sbt.version=0.13.5

顺便说一句 - 我将在代码中保留原始作者的详细信息,以将代码归于他们。


编辑。

我正在使用sbt-cxf-wsdl2java插件。

我主要希望升级插件使用的 CXF 版本,因为这是硬编码的,而不是插件目标代码。

我可以分叉它,更改代码,创建新插件并推送到一个仓库,然后在我的项目中声明,但这对于一个相对较小的更改来说似乎需要付出很多努力——因此我希望在我的应用程序中“嵌入”插件代码。

我想我需要阅读文档并弄清楚插件如何工作才能理解这一点 - 但如果有人可以给我一些指示以节省我的时间,那么我将非常感激。

build.sbt(带有相关的插件位):

lazy val wsPackage = "com.myCompany"

seq(cxf.settings :_*)

cxf.wsdls := Seq(
    cxf.Wsdl((resourceDirectory in Compile).value / "My.wsdl", Seq("-p",  wsPackage), "modelOutputDir")
)

插件.sbt

addSbtPlugin("com.ebiznext.sbt.plugins" % "sbt-cxf-wsdl2java" % "0.1.4")
4

1 回答 1

1

build.sbt中,您可以覆盖配置键(位于 中com.ebiznext.sbt.plugins.CxfWsdl2JavaPlugin.Keys)。例如:

lazy val wsPackage = "com.myCompany"

Seq(cxf.settings :_*)

cxf.cxfVersion := "3.1.2" // override CXF version

cxf.wsdls := Seq(
  cxf.Wsdl((resourceDirectory in Compile).value / "My.wsdl", Seq("-p",  wsPackage, "-impl", "-mark-generated"), "unique wsdl id")
)
于 2015-09-21T16:14:40.083 回答