Gradle 多项目的个人发行版
Individual distributions for Gradle multi-project
我有许多非常相似(非Java)的项目需要生成Zip/Tar 分布。通常每个项目都有一个 distributions
部分,用于复制各种 files/directories 并组装存档。我想将通用代码提取到单独的 "common" 项目,但从子项目执行构建,这样我就可以根据我需要的风格生成一个存档。公共代码只是一个需要包含到存档中的目录
我可能永远不会 运行 从父级构建生成多个发行版。
我需要先复制公共文件,然后再从子项目中复制 add/overwrite 文件。我查看了 samples/userguide/multiproject
中的示例,并希望使用平面结构。但是这些例子非常简单,所以任何例子都将不胜感激!
请查看此示例项目https://github.com/fanick1/so-individual-distributions-for-gradle-multi-project
根据您在问题中所写的内容,我假设您正在使用 distribution 插件。存储库包含一个由一个项目 (commonProject) 组成的多项目,假设有共同的内容:
commonProject/src/
- commonFiles/
- customFiles/customFile.txt
和两个基本相同的子项目(projectA、projectB):
project[A|B]/src/
- customFiles/customFile.txt
- files[A|B]/
您可以 运行 gradlew distZip
这将在 /build/distributions
文件夹中的每个子项目中创建分发 zip 文件。
子项目包含文件夹 customFiles
,它也位于 commonProject
中。如果存在同名文件,则输出 zip 文件中的内容最终将被相应子项目中的内容覆盖。
基本上这意味着文件 /customFiles/customFile.txt
将被覆盖。 /commonFiles
中的内容将始终复制到子项目的分发 zip 文件中。
希望这会有所帮助。
我有许多非常相似(非Java)的项目需要生成Zip/Tar 分布。通常每个项目都有一个 distributions
部分,用于复制各种 files/directories 并组装存档。我想将通用代码提取到单独的 "common" 项目,但从子项目执行构建,这样我就可以根据我需要的风格生成一个存档。公共代码只是一个需要包含到存档中的目录
我可能永远不会 运行 从父级构建生成多个发行版。
我需要先复制公共文件,然后再从子项目中复制 add/overwrite 文件。我查看了 samples/userguide/multiproject
中的示例,并希望使用平面结构。但是这些例子非常简单,所以任何例子都将不胜感激!
请查看此示例项目https://github.com/fanick1/so-individual-distributions-for-gradle-multi-project
根据您在问题中所写的内容,我假设您正在使用 distribution 插件。存储库包含一个由一个项目 (commonProject) 组成的多项目,假设有共同的内容:
commonProject/src/
- commonFiles/
- customFiles/customFile.txt
和两个基本相同的子项目(projectA、projectB):
project[A|B]/src/
- customFiles/customFile.txt
- files[A|B]/
您可以 运行 gradlew distZip
这将在 /build/distributions
文件夹中的每个子项目中创建分发 zip 文件。
子项目包含文件夹 customFiles
,它也位于 commonProject
中。如果存在同名文件,则输出 zip 文件中的内容最终将被相应子项目中的内容覆盖。
基本上这意味着文件 /customFiles/customFile.txt
将被覆盖。 /commonFiles
中的内容将始终复制到子项目的分发 zip 文件中。
希望这会有所帮助。