当前位置: 首页 > 知识库问答 >
问题:

Gradle:jar任务-从

文心思
2023-03-14

我需要自定义我的jar任务,以便它:

  • 像往常一样处理所有类;
  • 只包含特定的资源,并将它们放入jar中的自定义文件夹中。

我已经做了自定义罐任务,这是我想要的:

task customJar(type: Jar) {
    dependsOn classes
    group = 'build'

    // everything except resources process as usual
    from sourceSets.main.output - sourceSets.main.output.resourcesDir

    // and process resources to custom place
    from(sourceSets.main.output.resourcesDir) {
        include 'docs/**'
        include 'messages*.properties'
        into 'custom-folder'
    }
}

但我仍然需要用一个新的罐子替换内置的罐子。

将其替换为创建

tasks.create(name: "jar", type: Jar, overwrite: true) {
    // ... custom jar spec
}

...产量

Replacing an existing task that may have already been used by other plugins is not supported

简单地配置jar任务不起作用,因为它已经在JavaPlugin中配置好了:

jar {
    // jar is already configured
    // with `from sourceSets.main.output`
    // so it will include everything
    // AND create a custom folder

    // does nothing
    from sourceSets.main.output - sourceSets.main.output.resourcesDir

    // adds processed resources into 'custom-folder'
    // in addition to all resources processed by default behaviour
    from(sourceSets.main.output.resourcesDir) {
        include 'docs/**'
        include 'messages*.properties'
        into 'custom-folder'
    }
}

所以,我需要的是从jar的配置中重写(覆盖)默认的。可能吗?


共有1个答案

奚英朗
2023-03-14

你在那里几乎...

tasks.create(name: "myJar", type: Jar) {
    // ... custom jar spec
}

jar.enabled = false //if you want to disable the default
build.dependsOn myJar //ensure this always runs
 类似资料:
  • 我正在将一些用于iOS和OSX的Ant构建转换为Gradle。创建了以下内容: 这可能很简单,但我做错了什么?如何从自定义类中调用exec任务?

  • 3.3.3 Android 任务 Android plugin 使用了同样的约定规则以和其他插件保持兼容,并且又添加了一些额外的引导任务: assemble 这个任务会汇集工程的所有输出。 check 这个任务会执行所有校验检查 connectedCheck 运行 checks 需要一个连接的设备或者模拟器,这些checks将会同时运行在所有连接的设备上。 deviceCheck 通过 API 连

  • 本书的任务是让你熟悉在命令行界面下工作。 熟悉在命令行界面下工作,可以作为你成为一名开发者要做的第一个任务。 在命令行界面下完成一些简单的日常工作,比如进入到某个目录的下面,查看目录里的东西,在目录里创建新的目录,文件,重命名文件或目录,移动文件的位置,编辑文件里的内容。这些任务在图形界面下操作就是点点鼠标的事儿。在命令行界面下,你需要了解内容的路径,绝对路径与相对路径的区别,使用什么样的命令,要

  • 为开发工作去准备一些工具,注意安装的顺序很重要。

  • 你不需要一本 500 页的书,才能去使用 Linux 操作系统。熟悉下面这四项技能,你就可以使用 Linux 系统去做一些事情了。比如去搭建网站应用的运行环境。 熟悉在命令行界面下工作 文件与目录的权限 系统包管理 管理系统服务

  • 帮助用户快速部署一次性的离线任务。 任务(Job)用于部署仅执行一次的任务,job编排的pod根据用户设置处理任务,任务完成后pod就自动退出。Job的详细介绍内容,请参考kubernets官方文档-Jobs 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “容器/应用/任务” 菜单项,进入任务页面。 查看任务 该功能用于基于集群、命名空间筛选任务信息。 在任务页面,默认查看一个集群