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

使用包含选定依赖项的gradle构建Zip任务

隆飞宇
2023-03-14

我想在gradle中创建zip/war/jar工件,其中包括几个类,并且只需要依赖项

我有简单的zip任务如下:

 task myZip(type: Zip) {
    from sourceSets.main.output
    include 'com/mypackage/*'   
    archiveName 'myzip.zip'
    }

现在我想包括一些编译依赖项示例构建。渐变骨架:

 apply plugin : 'java'
    apply plugin : 'eclipse'
    apply plugin: 'maven-publish'
    repositories{
    }
    configurations
    {
    }
    dependencies
    {
    compile <dependency1>
    compile <dependency2>
    compile <dependency3>
    ...

    compile <dependency20>
    myzipjar <dependency3>
    myzipjar <dependency6>
    myzipjar <dependency13>
    }

对于我的zip任务:

task myZip(type: Zip) {
      from sourceSets.main.output
     include 'com/mypackage/*'
    **into 'lib'
    from configurations.myzipjar**   
     archiveName 'myzip.zip'

    }

共有1个答案

胡弘毅
2023-03-14

解决方案取决于所需的选择标准。

您可以将配置视为常规的文件集合,从中可以查询文件实例:

configurations.compile.findAll
{
    it.name.startsWith == "required-prefix" // it is an instance of File
}

...或者您可以使用它的getResolvedConfiguration()方法通过发起依赖实例来过滤分辨率结果:

configurations.compile.resolvedConfiguration.getFiles
{
    it.group == "target-group" // it is an instance of Dependency
}

或者您应该考虑使用一个单独的配置,它将包含在代码>编译/代码>配置和YOUT ZIP任务中:

configurations
{
    zippableCompile
    compile.extendsFrom zippableCompile
}

dependencies
{
    zippableCompile <...>
}

另外,compile配置从Gradle 3.4开始就被弃用,请改用implementation

 类似资料:
  • 我将给你一个关于我的文件的概述: 设置。分级: Build.Gradle: 注意:我以为没有将依赖项添加到类路径中,但我不确定这一点。但是,我希望Intellij将依赖项添加到类路径中(或者在清单文件中声明) 但是,这会创建一个zip/tar,其中包含一个执行脚本和一个bin文件夹,这不是我的本意。 所以我开始在谷歌上搜索了好几个小时,但我找不到解决问题的方法。

  • 我的项目中有以下设置... 用于SOA风格项目的多项目gradle构建,使用Rabbitmq和Spring集成连接在一起。 包含许多grails项目以及表示服务的普通java/groovy项目。 每个服务项目旁边都有一个项目(jar),其中包含可以使用Spring集成代理的服务的所有公共接口(和消息)。 这些项目使用gradle依赖关系相互关联,然后我使用gradle想法插件生成IntelliJ项

  • 我在{project_home}/src/test/groovy/中有一些功能测试 我希望能够使用一个gradle任务: 但是编译失败: 我确实在/build/libs下面有jar文件

  • 我使用在JAR中包含依赖项 问题是它没有添加我的dependancies的所有dependancie树,我不知道为什么。 有人知道吗?

  • 我正在使用Gradle构建并打包一个非常简单的Spring启动应用程序(99%的静态内容)到带有嵌入式tomcat的jar中。 我尝试创建该jar,起初结果86k,没有启动,因为它缺少一些Spring Boot类。我得出结论,我制作的这个jar不包含应用程序的任何依赖项,既然我确实想要一个完全独立的jar,我应该做更多的研究。 这时,我发现建议将{configurations.compile.co