Gradle - 将单个文件添加到 JAR

Posted

技术标签:

【中文标题】Gradle - 将单个文件添加到 JAR【英文标题】:Gradle - Add single file to JAR 【发布时间】:2012-09-06 19:27:11 【问题描述】:

我的项目根目录中有文件“license.txt”。在 jar-task 中,我想将此文件添加到 JAR 文件的(根文件夹)中。

我试过了

jar 
  from '.' include 'license.txt'

但这替换其他内容(.class文件)而不是添加一个文件。 而且我不想将 license.txt 添加到资源文件夹中,因为我不想仅仅因为构建工具而改变我的项目结构。

谁能帮忙?谢谢!

【问题讨论】:

【参考方案1】:

要添加单个文件,您只需执行以下操作:

jar 
    from "license.txt"

如果您通过将include 括在花括号中将其范围限定为from,您的解决方案也应该有效。

【讨论】:

简短而完美的答案。谢谢! 你能举一个包含范围的例子吗?我想将某些目录添加到 jar 中。当我使用时: from "$projectDir/src/main/webapp/WEB-INF" 然后它只使用那个目录,但我想添加这个目录... from 是加法的。它不会覆盖任何东西。 In my case 生成了我要添加的那些文件,并且似乎jar 试图过早地添加这些文件。知道如何解决这个问题吗?【参考方案2】:

如果你想添加多个文件,你可以这样做:

jar
    from
        ["aaa.txt","bbb.txt"]
    

【讨论】:

【参考方案3】:

您将添加多个文件到输出 jar,如下所示:

jar 
    // Update jar name according to Ascertia conventions
    /**
     * archiveFileName
     * The archive name. If the name has not been explicitly set, the pattern for the name is:
     * [archiveBaseName]-[archiveAppendix]-[archiveVersion]-[archiveClassifier].[archiveExtension]
     */
    archiveFileName = 'database_postgresql.jar'
    from(['build/classes/java/main','mappings/postgresql'])

将添加以下目录中的所有内容:

构建/类/java /main/mappings/postgresql

【讨论】:

以上是关于Gradle - 将单个文件添加到 JAR的主要内容,如果未能解决你的问题,请参考以下文章

解决安卓中单个dex方法数超过65535的方法

如何将参数添加到 flyway build.gradle 文件?

使用 gradle 将资源、配置文件添加到您的 jar 中

如何将安全策略文件添加到 rmi 应用程序的 gradle 构建?

如何将 gradle 生成的源文件夹添加到 Eclipse 项目?

如何使用 Gradle 将 jar 文件添加到 libgdx 项目