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

  • 相关阅读:
    Unable To Open Database After ASM Upgrade From Release 11.1 To Release 11.2
    11g Understanding Automatic Diagnostic Repository.
    How to perform Rolling UpgradeDowngrade in 11g ASM
    Oracle 11.2.0.2 Patch 说明
    Pattern Matching Metacharacters For asm_diskstring
    Steps To MigrateMove a Database From NonASM to ASM And ViceVersa
    Upgrading ASM instance from Oracle 10.1 to Oracle 10.2. (Single Instance)
    OCSSD.BIN Process is Running in a NonRAC Environment
    Steps To MigrateMove a Database From NonASM to ASM And ViceVersa
    On RAC, expdp Removes the Service Name [ID 1269319.1]
  • 原文地址:https://www.cnblogs.com/SummerinShire/p/5569931.html
Copyright © 2011-2022 走看看