我有一个SBT项目,它使用sbt-xjc插件从QTI XSD创建JAXB Java类(特别是this one)。我的XSD依赖于MathML,它可以按预期创建MathML类和QTI类。我目前使用的唯一xjc标志是<img src="$num" class="img-responsive" alt="">
。
这是我的目录树:
<img src="/opt/lampp/htdocs/my_project/images/my_pic.jpg" class="img-responsive" alt="">
但是,我有另一个依赖于MathML的JAXB项目,并且还生成了MathML类。我想摆脱重复的类。我创建了一个MathML JAXB项目,并将其作为依赖项添加到其他2个项目中。如何告诉SBT创建一个不包含MathML类的QTI autogen JAR?
我尝试了与this answer类似的内容,但它无效。 MathML类仍然包含在JAR中。这是我添加到build.sbt的尝试:
-verbose -extension
我接受以下任何一项工作:
答案 0 :(得分:1)
使用mappings
键定义jar的内容。请参阅:http://www.scala-sbt.org/0.13/docs/Howto-Package.html
在您的情况下,您可以通过org/w3_1998/math/mathml
中的以下设置排除MathML文件(假设它们都以jar中的build.sbt
开头):
mappings in (Compile, packageBin) ~= { _.filterNot {
case (filePath, pathInJar) => pathInJar.startsWith("org/w3_1998/math/mathml")
}}
或更简洁(并且对一些人来说不太可读):
mappings in (Compile, packageBin) ~= { _.filterNot(_._2.startsWith("org/w3_1998/math/mathml")) }