zoukankan      html  css  js  c++  java
  • 初始化 Gradle 工程目录(转自: 隔叶黄莺 Unmi Blog)

      最近重新在 Eclipse 中打开旧的 Maven 项目,总有些什么错误,备受折磨。期间试手了 Ant+Ivy, 现今试用了下 Gradle,感觉不错,它应该才是我真想要的,Maven 差不多该扔到一边去了。

      Gradle 像 sbt 构建工具一样,也不会帮我们生成默认的目录布局,这些要自己来做。这不是什么麻烦事,因为只需做一次,可预先写好初始化脚本,幸好本人已习惯 shell 操作。

    假设我们有这样的 build.gradle 文件

    apply plugin: 'java'
    apply plugin: 'war'    //有这行时我们需要创建 src/main/webapp 目录
    apply plugin: 'eclipse'

    我们执行 gradle eclipse 后是不会生成src 目录的,工程下的源文件目录是需要自己来生成的。Gradle 参考 Maven 的标准目录布局,即

    1
    2
    3
    4
    5
    6
    7
    8
    src
     ├── main
     │   ├── java
     │   ├── resources
     │   └── webapp
     └── test
         ├── java
         └── resources

    我们有两种办法初始化目录布局

    1. 纯手工打造,在工程目录中执行

    mkdir -p src/main/{java,resources}
    mkdir -p src/test/{java,resources}

    #如果是 web 项目还要生成 webapp 目录
    mkdir -p src/main/webapp

    可以把它们合成一条命令,比如

    mkdir -p src/main/{java,resources} src/test/{java,resources}
    #或者 mkdir -p src/{main,test}/{java,resources}

    或者

    mkdir -p src/main/{java,resources,webapp} src/test/{java,resource}
    #或者  mkdir -p src{main,test}/{java,resources} src/webapp

    然后再执行 gradle eclipse 命令即可。

    2. 用 Gradle 任务来初始化工程目录

    普通 Java 项目,这样的 build.gradle

    1
    2
    3
    4
    5
    6
    7
    apply plugin: 'java'
    apply plugin: 'eclipse'
     
    task createJavaProject << {
        sourceSets*.java.srcDirs*.each { it.mkdirs() }
        sourceSets*.resources.srcDirs*.each { it.mkdirs()}
    }

    第一次建立目录时需执行

    gradle createJavaProject
    gradle eclipse

    #或者合成一条指令
    gradle createJavaProject eclipse

    Java Web 项目,这个 build.gradle

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    apply plugin: 'java'
    apply plugin: 'eclipse'
    apply plugin: 'war'
     
    task createJavaProject << {
        sourceSets*.java.srcDirs*.each { it.mkdirs() }
        sourceSets*.resources.srcDirs*.each { it.mkdirs()}
    }
     
    task createWebProject(dependsOn: 'createJavaProject') << {
        def webAppDir = file("$webAppDirName")
        webAppDir.mkdirs()
    }

    执行下面命令

    gradle createWebProject eclipse

    上面可以建立我们需要的目录布局。

    综合以上,个人觉得对于那样的一锤子的买卖,用 Shell 命令初始化一次目录就行了,真没必要写在 build.gradle 文件里去招人眼目。而且是不是在创建好了基本的目录之后立即把 createJavaProject 和  createWebProject 这两任务删去了呢,应该的。

    本文链接 http://gloveangels.com/initialize-gradle-project-layout/, 来自 隔叶黄莺 Unmi Blog

  • 相关阅读:
    大道至简阅读笔记01
    构建之法阅读笔记06
    第二阶段个人工作总结(10)
    学习进度条(十四周)
    第二阶段个人工作总结(9)
    SapringMVC的文件上传下载以及拦截器
    Servlet的请求
    Servlet 的生命周期
    IO流
    set接口
  • 原文地址:https://www.cnblogs.com/SummerinShire/p/5569931.html
Copyright © 2011-2022 走看看