我正在用一个胖罐子塑造一个码头工人的形象。我使用sbt-assembly
插件构建jar,使用sbt-native-packager
构建Docker映像。我对SBT不是很熟悉,我遇到了以下问题。
>
publish:=(发布依赖于程序集)。值
构建映像的步骤之一是复制胖罐子。由于assembly插件在target/scala\u whatever/projectname-assembly-X.X.jar
中创建jar,因此我需要知道确切的scala\u whatever
和jar名称。程序集似乎有一个键assemblyJarName
,但我不确定如何访问它。我尝试了以下失败的方法。
Cmd(“复制”、“目标/scala*/*.jar/app.jar”)
帮助
回答我自己的问题,以下作品:
enablePlugins(JavaAppPackaging, DockerPlugin)
assemblyMergeStrategy in assembly := {
case x => {
val oldStrategy = (assemblyMergeStrategy in assembly).value
val strategy = oldStrategy(x)
if (strategy == MergeStrategy.deduplicate)
MergeStrategy.first
else strategy
}
}
// Remove all jar mappings in universal and append the fat jar
mappings in Universal := {
val universalMappings = (mappings in Universal).value
val fatJar = (assembly in Compile).value
val filtered = universalMappings.filter {
case (file, name) => !name.endsWith(".jar")
}
filtered :+ (fatJar -> ("lib/" + fatJar.getName))
}
dockerRepository := Some("username")
import com.typesafe.sbt.packager.docker.{Cmd, ExecCmd}
dockerCommands := Seq(
Cmd("FROM", "username/spark:2.1.0"),
Cmd("WORKDIR", "/"),
Cmd("COPY", "opt/docker/lib/*.jar", "/app.jar"),
ExecCmd("ENTRYPOINT", "/opt/spark/bin/spark-submit", "/app.jar")
)
我完全覆盖docker命令,因为默认值添加了两个我不需要的脚本,因为我也覆盖了入口点。另外,默认的workdir是/opt/docker
,这不是我想要放胖罐子的地方。请注意,默认命令由sbt控制台中的show dockerCommands
显示。
我试图在NetBeans中建立一个胖罐子。当我点击clean时,它显示以下错误: C:\workspace\travel_agency\nbproject\build-impl.xml:63:源资源不存在:C:\workspace\travel_agency\dist\nblibraries.properties 然后单击错误,它会将我发送到build-imple.xml文件中的以下行:
我的spring-boot项目如下所示: 应用程序包含main和一个实现WebMVCConfigurer的MvcConfig类: 当我运行:gradlew:application:bootrun=>时,一切都很好。 我的web目录是一个angularJS应用程序,gulp将其构建在一个dist库中。(我正在使用moowork节点和gulp gradle插件) 我知道我必须更改addResource
在运行Java8和Gradle6.3的Linux机器上,我需要构建一个由库混合而成的fat jar,一些库来自Maven Central,其他库来自位于存储库根部的本地目录,以及我的和: 运行和之后,如果我可以看到JAR中没有包含任何依赖项。 我的最终目标是使我的项目可执行为。我该怎么解决这个?
问题内容: 我已经阅读了很多关于此的文章/说明,并且花费了太多时间,但是所有内容要么太广泛,要么太具体。 这个问题实际上仅适用于我制作的Applet。它包含一个类,并需要其他2个Jar库。我已经将它们包括在项目中(多个项目,因为我已经在Netbeans和Eclipse中进行了尝试……很容易重新创建一个Class项目)。所有这些的关键是我的HTML / web项目不必处理多个Jar或引用它们。这也不
我读了这么多关于这方面的文章/解释,花了太多时间,但所有的东西要么太宽泛,要么太具体。 这个问题实际上只适用于我制作的一个Applet。它包含一个类,需要另外两个Jar库。我已经在项目中包含了这些内容(多个项目,因为我已经在Netbeans和Eclipse中尝试过了...很容易重新创建一个类项目)。所有这一切的要点是,我的HTML/Web项目不应该必须处理多个Jar或引用它们。它也完全不是一个复杂
如标题所示,我想知道如何修改以创建一个唯一的,其中包含所有依赖项(包括kotlin lib)。 我在Groovy中找到了这个示例: 但我不知道我怎么能用kotlin写,除了: