我想在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'
}
解决方案取决于所需的选择标准。
您可以将配置
视为常规的文件集合
,从中可以查询文件
实例:
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