类似Maven的文件exclude,include在SBT中



在scala build.sbt中查找解决方案,以排除路径下除三个工件外的所有依赖项的类。

类似于pom.xml在这里的作用。

<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>com.org.abc:*</artifact>
<includes>
<include>**</include>
</includes>
</filter>
<filter>
<artifact>io.foo:*</artifact>
<includes>
<include>**</include>
</includes>
</filter>
<filter>
<artifact>io.boo:*</artifact>
<includes>
<include>**</include>
</includes>
</filter>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>javax/**</exclude>
<exclude>servletx/**</exclude>
</excludes>
</filter>
</filters>```

如果您有详细的打包需求,最好的解决方案是sbt汇编插件,它允许您创建相当复杂的构建。

如果您只是想排除一些依赖项(这里的情况可能是这样(,您可以在provided配置中将这些jar从打包中排除到build.sbt文件中的依赖项声明中。例如:

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

指示您希望客户端在运行应用程序时提供依赖项。

最新更新