`
SSailYang
  • 浏览: 312987 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Gradle 实践

阅读更多
前段时间在看了文章[5个让人激动的Java项目]之后,决定实践一下 Gradle。

我对 Gradle 的理解是其是结合了 Maven 和 Ant 双方优点的一种基于 Groovy DSL 的新式项目构建工具。而且由于是基于 Groovy 语言,所以语法上要比基于 XML 的 Maven 和 Ant 简洁许多,并且功能更加强大。

现在 Gradle 的最新版本是 1.0 rc1,IDE 方面我用的是 IntelliJ IDEA 11.1。需要说明的是,IDEA 11.1 以前的版本并不能和 1.0 rc1 配合使用,这也是因为 Gradle 是个新工具,变化比较快导致的。

下面通过一个例子,从使用 Maven 的 Repository、OSGi 项目构建、模块化项目等角度为大家初步介绍一下 Gradle 的使用。

// 其实是 Groovy 代码,为了高亮,写成 Java
// build.gradle:
// 包含在 subprojects 中的配置只对 settings.gradle 中包含的子项目起作用。
// 类似的还有 allprojects,对根项目也起作用
subprojects { subproject ->
    // 使用本地的 Maven 仓库
    repositories {
        mavenLocal()
    }

    // 启用插件
    apply plugin: 'java'
    // OSGi 插件用于生产 manifest 文件
    apply plugin: 'osgi'

    // 解决使用 OSGi 插件的一个 bug
    classes.doLast {
        // without this, the jar task fails with "java.lang.IllegalArgumentException: A Jar can only accept a valid file or directory:" as underlying cause
        ant.mkdir(dir: "$buildDir/classes/main")
    }

    // 依赖管理,语法和 Maven 相比简练许多
    dependencies {
        testCompile 'junit:junit:4.8.1'
        compile 'log4j:log4j:1.2.16'
    }
}

// settings.gradle
// 对于多模块系统是必须的
include 'subproj1', 'subproj2'


Gradle 常用的几个命令,jar 是打包,test 的运行单元测试,clean 是清理。与 Maven 不同,jar 命令不会运行单元测试。但是 Gradle 也像 Maven 一样,支持多个命令同时运行,用空格分开即可。

Gradle 的特性是非常多的,我这里介绍的只是一小部分。

Gradle 的不足在于并不像 Maven 的 pom.xml 那样有相对固定的格式,当然这也是其灵活用法的两面性。另一点不足是 Gradle 还是一个比较新的项目,目前为止最新版本也才是 1.0 rc1,上不是正式版本。当然已经有很多著名的开源项目,例如 Hibernate,开始使用 Gradle 作为项目构建工具,所以 Gradle 的前途还是很好的。

对于目前采用 Maven 的项目,一般没有必要移到 Gradle 上。但如果对于大型项目,需要很多自定义的项目构建过程,我认为 Gradle 是比 Maven 或 Ant + Ivy 更好的选择。

附件是整个项目。
3
0
分享到:
评论
2 楼 SSailYang 2013-03-24  
xcoder 写道
请问使用gradle开发osgi项目,怎么对代码进行调试啊?

IntelliJ IDEA 对 Gradle 有原生支持,Eclipse 需要插件。如何调试和是不是 OSGi 的项目有关系吗
1 楼 xcoder 2013-03-20  
请问使用gradle开发osgi项目,怎么对代码进行调试啊?

相关推荐

    Gradle实践1

    【Gradle实践1】课程主要围绕Gradle这一构建工具展开,旨在帮助初学者快速掌握其使用。Gradle是一个灵活且强大的构建自动化系统,尤其适用于Java和C#等编程语言的项目。课程分为多个章节,逐步深入地讲解Gradle的...

    Gradle Effective Implementation Guide

    标题中的知识点:“Gradle Effective Implementation Guide”指的是本书是一本关于Gradle实践的指南。Gradle是一种基于Apache Ant和Apache Maven概念的项目自动化构建工具,它使用一种基于Groovy的特定领域语言来...

    groovy 学习gradle学习经典手册

    《Groovy学习与Gradle实践经典手册》是一本深度探讨Groovy编程语言和Gradle构建工具的指南,专为Android及Java开发人员提供全面的知识覆盖。本书旨在帮助开发者提升在项目管理和自动化构建方面的技能,使其能够高效...

    gradle-6.7-all.rar

    四、Gradle实践应用 在实际开发中,Gradle广泛应用于Java、Android等项目的构建。对于Java项目,Gradle可以轻松管理Maven仓库中的依赖,对于Android项目,Gradle提供了一整套完善的构建方案,包括资源处理、APK打包...

    Gradle In Action

    而描述部分则暗示了这本书是权威的Gradle实践指南,是Manning出版的,具有一定的品牌影响力。标签“Gradle Manning”表明本书专注于Gradle技术,并且是Manning出版系列书籍之一。 接下来,从提供的部分内容中,我们...

    gradle-8.5-all

    四、最佳实践 1. **合理使用缓存**:正确配置Gradle的本地和远程缓存,可以有效减少网络依赖,加快构建速度。 2. **使用懒加载**:避免在构建脚本中提前初始化不必要的依赖,利用Gradle的懒加载特性,只在需要时才...

    gradle多版本下载

    6. **最佳实践** - 对于新项目,建议使用较新的Gradle版本以获取最新特性。 - 对于维护旧项目,应确保Gradle版本与项目的其他依赖兼容,避免升级带来的不稳定性。 - 定期检查Gradle的更新,及时升级以利用性能...

    gradle-4.6版本

    同时,通过示例项目可以实践这些概念,提升对Gradle的理解和应用能力。 总之,Gradle 4.6 在依赖管理上的出色表现和稳定性,使其成为许多开发者的首选。配合详尽的文档和丰富的示例,无论是新手还是经验丰富的...

    gradleTest_gradle管理_

    本文将深入探讨如何使用Gradle来管理SpringBoot项目,以"gradleTest"为例,解析其核心概念与实践操作。 一、Gradle基础 Gradle是一种基于Groovy的构建自动化工具,它允许开发者通过声明式的方式来定义构建过程。与...

    gradle-7.5-all.zip压缩包

    Gradle 是一个强大的自动化构建工具,广泛应用于Java、Android和其他多语言项目中。在本案例中,我们讨论的是...了解和掌握Gradle的各种特性和最佳实践对于现代软件开发至关重要,特别是对于Android开发来说更是如此。

    实战Gradle

    , 《实战Gradle》(Gradle in Action)全方位地讲解了Gradle 工具相关的知识,包括Gradle 的基本知识、自动化构建的基本概念和最佳实践,以实际案例的方式解释如何使用Gradle 进行软件项目构建。除了基础知识外,...

    gradle压缩包,3.2.1版本

    Gradle是一款强大的构建工具,广泛应用于Java、Android和其他JVM语言的项目中。它采用领域特定语言(DSL)来管理构建过程,相比Ant和...参考相关博客或其他在线资源,可以进一步学习和掌握Gradle的高级特性和最佳实践。

    gradle guide.pdf

    Gradle 的最佳实践: - 组织项目结构,明确地组织代码和资源,便于管理。 - 使用初始化脚本、构建脚本和项目结构遵循可维护性原则。 - 使用懒加载配置,按需初始化配置,提高构建性能。 Gradle 在不同语言和环境下...

    gradle最新版-gradle-2.13-all

    此外,"更多资源.url"可能指向一个包含相关文档、教程或更新信息的链接,这对于学习和了解Gradle的新特性和最佳实践非常有帮助。 总的来说,Gradle 2.13是一个为开发者提供高效构建解决方案的重要工具,尤其在...

    gradle-8.8-bin.zip

    六、持续集成与最佳实践: - 使用`wrapper`:Gradle Wrapper是一个小型的构建脚本,确保团队成员使用一致的Gradle版本。 - 配置缓存:优化本地和远程缓存设置,以减少网络传输和加快构建速度。 - 编写清晰的构建脚本...

    gradle-4.4.zip

    - **API更新**:可能更新了一些API,以保持与最新的开发标准和最佳实践同步。 3. **安装与使用** 解压`gradle-4.4.zip`后,用户需要将解压路径添加到系统的PATH环境变量中,以便命令行可以识别`gradle`命令。然后...

    Gradle Tutorial

    标题为“Gradle Tutorial”的文档是一份关于Gradle构建工具的英文教程,介绍了Gradle的版本信息、实现方式、...通过学习和实践上述核心概念,开发者们可以更加有效地使用Gradle来自动化项目的构建、测试和部署过程。

    gradle-8.0.2-all.zip gradle-8.0.2-all.zip gradle-8.0.2-all.zip

    Gradle 是一个强大的构建自动化工具,广泛用于Java、Android和其他 JVM 语言的项目。它以其灵活性、可扩展性和高效的依赖管理而闻名。...为了充分利用Gradle,建议深入阅读其官方文档,了解各项功能和最佳实践。

    gradle-3.3-all.zip

    6. **最佳实践**: - **缓存策略**:合理设置Gradle的本地仓库和缓存策略,以减少不必要的网络请求。 - **版本控制**:将`build.gradle`文件纳入版本控制,确保团队成员使用相同的构建配置。 - **持续集成**:...

Global site tag (gtag.js) - Google Analytics