maven - 构建可以使用来自多个转发的依赖项的系统

标签 maven gradle ant

我在亚马逊担任软件工程师多年,但最近决定搬到另一家公司。在亚马逊有一个自定义构建系统,称为巴西。

它的工作方式是我将定义一个工作区,然后定义我在哪里使用哪些包进行开发。一个例子:包 A 依赖于 B、C 和 D。当我创建我的工作区时,我会指定我需要在本地拥有 A 和 B。

将创建以下文件夹结构:

myServiceAWorkspace
 - .workspaceConfig
 - A/
 - A/src
 - A/tst
 - A/.packageConfig
 - B/
 - B/src
 - B/tst
 - B/.packageConfig
.packageConfig包含有关依赖关系和如何构建项目的信息,很像 build.gradle
如果我在哪里去 A 文件夹并运行我们的构建命令,它是否会从本地工作区使用 B 构建 A 包,但会使用我们存储库中的 C 和 D。 (来自 B 的任何依赖项也将从我们的存储库中使用,除非它们在本地工作区中 checkout )

我发现这非常强大,因为它使不同服务之间的共享包变得非常容易。

如果一直在寻找像这样工作的构建系统,但没有运气。是否有任何构建系统可以做到这一点,或者有没有办法让 Gradle 或 Maven 像这样工作?

最佳答案

我认为该组织已经为某种需求创建了一个构建系统,顺便说一下 Maven 和 Gradle 遵循约定优于配置的原则。我会特别建议在您的情况下使用 Apache Ant一个旧的构建系统,但它很棒。如果您愿意,也可以使用 Apache Ivy根据需要定制您的构建。同样,它可能无法满足您提到的确切要求,但至少您可以做到。我觉得推荐大家可以放心使用的Maven或者Gradle。

正如 JF Meier Sir 建议的那样,您可以创建多模块 maven 或 gradle 项目以获得更精细的方法。

关于maven - 构建可以使用来自多个转发的依赖项的系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58568673/

相关文章:

java - 在 IDE 和 JAR 中使用 Java 加载资源(从静态上下文)

java - 如何在自定义 Ant 任务之间共享数据?

java - Splash-Screen 在 IDE 中工作,但不能以 .jar 形式工作 - ANT 问题?

java - 获取 Ant 构建错误 : Cannot run program "python"

java - Maven 生成源 "Some problems were encountered while building the effective model for "

java - 回滚问题 - Liquibase

java - cxf-xjc-plugin :3. 3.0 中的 Maven MojoExecutionException

android - Android SDK版本升级

android - 如何在 IntelliJ IDEA 中添加库(android-support-v7-appcompat)

Jenkins 管道,将分支名称传递给 gradle build