【问题标题】:Using Conda to package a set of JARS使用 conda 打包一组 JARS
【发布时间】:2018-07-30 05:37:15
【问题描述】:

我正在尝试将一组 JAR 文件打包到一个 conda 包中。原因是我可以将这个包推送到内部 conda 存储库,然后使用 conda 来管理部署。我的 conda.recipe/meta.yaml 看起来像这样

package:
  name: my_java_apps
  version: 0.0.0

source:
  path: ../build/allJars

当我跑步时

conda 构建 conda.recipe/meta.yaml

我生成了一个 .bz2 文件。但是,当我查看该文件(解压缩)时,我看不到我的任何 JAR...我只看到与 conda 配方相关的文件(即 info/ 文件夹)。

我的文件夹结构如下:

project_root/
            build/allJars <---- this contains all jars
            conda.recipe/meta.yaml  <---- my conda recipe file.

我做错了什么?

【问题讨论】:

  • 我猜你的构建脚本需要类似于cp *.jar $PREFIX/path/to/place/you/want/to/put/the/jar/files,虽然我不完全确定安装包时文件将放在哪里(因此,不是答案)。 $PREFIX 是在 conda 构建期间定义的环境变量,它指向为构建创建的环境。
  • 顺便说一句,不错的标题! :-)
  • 谢谢!那行得通。您能否将其发布为答案,以便我可以将其标记为这样?
  • 我认为如果您发布完整的答案(包括您的 meta.yaml 和/或 build.sh)会更好。尽管我的评论指出了方向,但我认为您应该给出答案,因为您拥有所有信息,而我不得不猜测其中的一些信息:-)

标签: java jar packaging conda


【解决方案1】:

感谢@darthbith 的提示。这是有效的解决方案:

package:
  name: my_java_apps
  version: 0.0.0

source:
  path: ../build/allJars

build:
  script: mkdir -p $PREFIX/jars && cp *.jar $PREFIX/

作为奖励(在此问题的范围之外,但包括在此处),我希望将此作为 Gradle 任务运行。以下任务运行 conda build 并将工件输出到我的项目中的子文件夹。

task createCondaPackage(type: Exec) {
    commandLine "mkdir", "$buildDir/conda"
    commandLine "conda", "build", "conda.recipe/meta.yaml", "--output-folder", "$buildDir/conda"
}

运行上述gradle任务后,conda包可以在build/conda子文件夹下找到。

project_root/
            build/allJars <---- this contains all jars
            build/conda   <---- this contains conda package
            conda.recipe/meta.yaml  <---- my conda recipe file.

【讨论】:

    猜你喜欢
    • 2020-05-21
    • 1970-01-01
    • 2023-03-07
    • 2013-06-15
    • 1970-01-01
    • 1970-01-01
    • 2020-12-27
    • 2017-03-01
    • 1970-01-01
    相关资源
    最近更新 更多