【问题标题】:How to create JARs for inclusion in Play's /lib directory如何创建 JAR 以包含在 Play 的 /lib 目录中
【发布时间】:2011-08-24 17:12:00
【问题描述】:

[菜鸟问题]

我下载了jBCrypt,其中包含两个文件,BCrypt.java 和一个测试文件。

我是 Java 打包新手,我知道 /lib 目录需要 .jar 文件。我知道如何创建一个类文件(javac “java 文件”),我知道如何创建一个 jar(jar cvf “类文件”)。

但是,我不知道这是否是正确的方法。如何正确地将 java 文件打包到 jar 中,以便 Play 知道如何以及在哪里找到该包?

附:我的解决方法是制作一个包 /playapp/app/bcrypt/BCrypt.java。

【问题讨论】:

    标签: playframework


    【解决方案1】:

    上述方法的问题是您将无法使用来自其他 repos 的依赖项同步运行 play。 我在互联网上的某个地方找到了一个解决方案,并认为它可能对您有用。 如果您运行例如 play run --deps

    ,该建议也有效

    以下是我的建议:

    1:创建一个文件夹来存储您的本地存储库,例如 jar 在您的播放应用程序的根文件夹中

    2:将以下内容添加到您的 dependencies.yml 文件中:

    repositories:
    - provided:
          type:       local
          descriptor: "${application.path}/../[module]/conf/dependencies.yml"
          artifact:   "${application.path}/jar/[module]-[revision].jar"
          contains:
            - provided -> *
    

    3:然后在 require 部分将其添加到列表中

     require:
        - provided -> yourjarfilename 1.0
    

    以上示例要求您将文件命名为:yourjarfilename-1.0.jar

    【讨论】:

      【解决方案2】:

      Play 将自动加载在 lib 文件夹中找到的所有 Jar。您只需要确保 Jar 中的文件夹结构与包名匹配即可。

      即,如果您的班级被称为com.mycompany.myproject.MyClass,那么您的 Jar 中应该有以下文件夹结构:

      com/mycompany/myproject/MyClass.class
      

      因此,您需要将 jar 命令发送到 Jar com 和所有子文件夹。

      【讨论】:

        【解决方案3】:

        要创建 Jar 文件,请遵循 Oracle tutorial。一种简单的方法是在 IDE 中创建 Java Jar 项目,添加所需的文件,然后让 IDE 生成 Jar。

        鉴于您只想在项目中添加 1 或 2 个 Java 文件,这是可以接受的(在此 场景)只需将它们添加到项目的源代码中。

        如果您创建 Jar,我建议您将 Jar 添加到某个本地存储库(请参阅here),以便您可以通过 Play deps 自动管理它。

        【讨论】:

          猜你喜欢
          • 2017-05-26
          • 2011-03-27
          • 1970-01-01
          • 2016-02-21
          • 1970-01-01
          • 2013-06-02
          • 1970-01-01
          • 2018-06-27
          • 2013-08-29
          相关资源
          最近更新 更多