gpt4 book ai didi

package - Gradle 多项目分布

转载 作者:行者123 更新时间:2023-12-02 01:37:12 25 4
gpt4 key购买 nike

我正在尝试创建一个多项目构建的版本。根项目看起来像这样:

apply plugin: 'distribution'
version 1.0
distributions {
main {
baseName = 'someName'
contents {
from 'nodes'
into 'nodes'
}
}
}

它只是将包含一些文件的文件夹复制到远程。

我现在希望每个子项目将其内容注入(inject)到 dist 中。我想添加每个子项目 jar、任何依赖项,以及可能的一些其他文件等...

我不知道如何从子项目注入(inject)到根目录。我应该做那样的事情吗?我的意思是这样的:

subprojects {
apply java...
...

// pseudocode
jack into the root project dist plugin
put my produced jars and dependencies in a folder with my name
...
}

有人有任何例子,或者只是指出我正确的方向吗?

谢谢!

最佳答案

我一直在寻找同样的东西。通过查看 API 文档和 Gradle 自己的构建文件,我得出以下结论:

apply plugin: 'distribution'

distributions {
main {
contents {
into('bin') {
from { project(':subproject1').startScripts.outputs.files }
from { project(':subproject2').startScripts.outputs.files }
fileMode = 0755
}
into('lib') {
def libs = []
libs << project(':subproject1').configurations.runtime - project(':runner').configurations.runtime
libs << project(':subproject2').configurations.runtime
from libs
from project(':subproject1').jar
from project(':subproject2').jar
}
}
}
}

contents {}闭包是 CopySpec ,知道这一点使得使用分发插件变得更简单:)

查看 Gradle 自己的 subprojects/distributions/distributions.gradle 文件,了解一些使用 CopySpec 的精彩示例。

这有效。

  • 减法是删除重复的 jar。
  • “.jar”行用于添加该项目的 jar,因为配置。运行时似乎仅包含依赖项。

遗憾的是,目前我不知道如何以干净的方式将其扩展到两个以上的项目。至少我们又近了一步:)

关于package - Gradle 多项目分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17709707/

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