gpt4 book ai didi

java - 使用 gradle 编译 zip,包括由同级子项目实现的库

转载 作者:行者123 更新时间:2023-12-01 17:51:12 31 4
gpt4 key购买 nike

我有一个由一些兄弟模块制作的java项目。这些模块之一是一个库,我正在其上应用 java-library 插件。所有其他模块都依赖于它。

我需要做的是自动为每个模块创建一个 zip,其中包含其工作所需的所有类和所有依赖项(我将 zip 部署为 aws-lambda 函数)。

到目前为止,这是我所实现的,但生成的 zip 仅包含模块的类。我认为问题可能是我正在使用的依赖类型(实现),我尝试了 switching to the default one但 gradle 甚至没有成功构建。

apply plugin: 'java'

sourceCompatibility = 1.8

repositories {
mavenCentral()
}

task buildZip(type: Zip) {
from compileJava
from processResources
from configurations.runtime
}

dependencies {
implementation project(':utils')
testCompile group: 'junit', name: 'junit', version: '4.12'
}

最佳答案

经过一些测试,我想我已经有了答案。

首先:声明任务和依赖项的顺序没问题!在填充之前使用配置是可以的。我这么说只是因为我在评论中指出这可能是一个问题。

其次,这里的问题是 configurations.runtime 的使用。这不会扩展 implementationapi,因此不包含这些依赖项。 runtime 已被 runtimeOnly 取代,这有望使行为变得清晰。

以下任务定义应该有效:

task buildZip(type: Zip) {
from compileJava
from processResources
from configurations.runtimeClasspath
}

关于java - 使用 gradle 编译 zip,包括由同级子项目实现的库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49931217/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com