【问题标题】:Can Gradle handle builds for legacy projects without having to restructure directories?Gradle 可以处理遗留项目的构建,而无需重组目录吗?
【发布时间】:2012-05-21 04:44:22
【问题描述】:

换句话说,Gradle 是否将某些目录结构强加到它管理的项目中?

我有一个遗留项目,任务是使其更易于构建和管理。它是一个多模块 Java EE 应用程序。 我发现(你也肯定会发现)当前的构建过程完全不正确,完全是浪费时间。

我相信现在是引入构建管理系统来解决问题的时候了,选择是在 Maven 和 Gradle 之间。

大部分项目都使用eclipse项目的目录结构。其他几个使用不同的目录布局,直到现在我找不到背后的原因。 使用 Maven,这将是一个绊脚石,因为我们需要重组目录以符合 Maven 的约定。重组目录可能需要付出巨大的额外努力,因为我们还需要在 CVS 上对其进行整理。

因此是 Gradle 的问题。

【问题讨论】:

    标签: java maven build build-automation gradle


    【解决方案1】:

    Gradle 使用约定优于配置,如果您遵循标准项目布局,则允许您提供最少的信息来构建项目。也就是说,一切仍然可以使用声明式样式进行配置:

    sourceSets {
    main {
        java {
            srcDir 'src/java'
        }
        resources {
            srcDir 'src/resources'
        }
    }
    

    }

    因为您拥有真正的编程语言,所以您几乎可以做任何事情。

    【讨论】:

    • 请注意,这添加源目录而不是替换它们。替换的语法是srcDirs = ['src/java']srcDirs = ['src/resources']
    【解决方案2】:

    两者都可以容纳任意目录结构。 IMO 在 Gradle 中更容易,在 Maven 中不值得。

    也就是说,我有点喜欢强加的目录结构,而且在大多数情况下,我喜欢 Maven 结构。由于目录处理问题,CVS 很痛苦,但从长远来看,跨项目迁移到一致的结构是值得的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-02
      • 2019-08-13
      • 2017-12-03
      • 2019-05-13
      • 1970-01-01
      • 2021-05-25
      • 2012-09-17
      相关资源
      最近更新 更多