【问题标题】:How to create a basic project setup using sbt-native-packager如何使用 sbt-native-packager 创建基本项目设置
【发布时间】:2013-09-15 16:38:32
【问题描述】:

我有一个使用 SBT 的项目设置,以创建子项目工件。

我一直在寻找一种方法来创建一个包含子项目 JAR 文件以及一些元信息的 JAR 文件。根据建议,我查看了 sbt-native-packager,它似乎具有我需要的功能。

我想知道是否有人愿意通过提供有关为插件创建骨架包规范的提示来帮助我。

我觉得我的配置很简单。

我最终想要的是一个 JAR 文件,其内容如下:

/manifest.xml
 module.xml
 modules/sub-project-one.jar
         sub-project-two.jar
         sub-project-three.jar

manifest.xml 和 module.xml 文件都将从项目信息中生成。生成的 JAR 文件的名称将基于根项目的名称、版本和后缀“nkp.jar”(例如 overlay-1.0.1.nkp.jar)。

在此先感谢您为我提供的任何帮助。

-- 兰迪

【问题讨论】:

    标签: sbt sbt-native-packager


    【解决方案1】:

    以下是您想要的基本信息:

    val createManifestXml = taskKey[File]("Creates the packaged maniest.xml")
    
    val createModuleXml = taskKey[File]("Creates the module.xml file.")
    
    // TODO - Define createManifestXml + createModuleXml
    
    mappings in Universal ++= {
       Map(createManifestXml.value -> "manifest.xml"
          module.xml -> "module.xml")
    }
    
    mappings in Universal ++= {
       val moduleJars = 
          Seq((packageBin in subProjectOne).value, 
              (packageBin in subProjectTwo).value,
              (packageBin in subProjectThree).value)
       moduleJars map { jar =>
         jar -> s"module/${jar.getName}"
       }
    }
    

    这将确保可以生成 tgz/txz/zip。然后,您可以使用“通用”通用 -> msi 和通用 -> rpm/deb 映射,或者根据需要手动创建该映射。

    希望有帮助!

    【讨论】:

      猜你喜欢
      • 2016-05-19
      • 2014-08-08
      • 2020-11-07
      • 2013-12-29
      • 2019-02-27
      • 2018-05-18
      • 2016-10-21
      • 2016-12-14
      • 2015-09-01
      相关资源
      最近更新 更多