初始化 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
初始化 Gradle 工程目录(转自: 隔叶黄莺 Unmi Blog)的更多相关文章
- iOS开发 frame 与 bounds 的区别与关系 转自隔叶黄莺
frame和bounds是UIView中的两个属性(property). frame指的是:该view在父view坐标系统中的位置和大小.(参照点是父亲的坐标系统) bounds指的是:该view在本 ...
- Android Studio安装后配置默认新工程目录以及.gradle,.android,.m2和system,config目录
关于在哪里设置:以下所有设置都是在没有打开工程的前提下设置的, Configure > Settings 如图: 不要使用 Configure > Project Defaults> ...
- nodejs学习笔记一:安装express框架并构建工程目录
偶遇node是在一个阳光明媚的上午,无意间打开博客看到一片关于nodejs的介绍,通读全篇后,心情跌宕起伏,哎呀,这么好的东西我竟然现在才知道,这是最气的,于是马上开始制定学习nodejs计划,好了, ...
- Android Studio工程目录介绍
来自知乎: Android Studio工程目录结构 .gradle 是gradle运行以后生成的缓存文件夹. .idea 是android studio/Intellij IDEA工程打开以后生成的 ...
- Python第三周第一次作业中关于工程目录各种导入的模拟学习
目录 Python工程目录 导入自定义模块, 包 记录的缘由 模块搜索路径 模块: 导入模块 导入函数 导入类 多个类 @(Python第三周第一次作业中工程目录,模拟学习) Python工程目录 导 ...
- Java Web工程目录结构
说明 介绍java web 工程的基本结构目录.记录java web 工程结构的学习. Java web 结构 java web严格来说分为两类工程结构:一个是工程编译目录结构,一个是工程发布目录结构 ...
- 使用注解和xml两种方式整合Activemq与spring(gradle工程)
一.新建gradle工程 1.1 使用intellij新建gradle工程步骤省略 二.导入依赖,配置build.gradle plugins { id 'java' } group 'com.bdh ...
- [转]Java Web工程目录结构
说明 介绍java web 工程的基本结构目录.记录java web 工程结构的学习. Java web 结构 java web严格来说分为两类工程结构:一个是工程编译目录结构,一个是工程发布目录结构 ...
- 使用FreePic2Pdf导出书签至Word建立层级目录——快速初始化Word笔记本目录
使用FreePic2Pdf导出书签至Word建立层级目录 --快速初始化Word笔记本目录 文:安徽师范大学2014级计算机科学与技术 王昊 (Get Contact:441301158@qq.com ...
随机推荐
- textView截取字符串-医生工作台1期
textfield截取字符串 ios7 会崩溃 解: 之前的写法是这样的 正确的写法: 先判断markedTextRange是否为nil, markedTextRange这个属性是啥意思呢 表 ...
- 迷宫dfs
#include<stdio.h>int mov1[4]={0,0,1,-1};int mov2[4]={1,-1,0,0};int map[5][5]={0,1,0,0,1, ...
- jvm 参数
参数名称 含义 默认值 -Xms 初始堆大小 物理内存的1/64(<1GB) 默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限 ...
- 【No.3 Ionic】超级逗表情 App
本人使用Ionic框架开发了一个 超级逗表情 的App 依赖插件 cordova-plugin-app-version 0.1.9 "AppVersion" cordova-plu ...
- 蓝牙—服务发现协议(SDP)
服务搜索协议(SDP)提供了应用发现可用服务以及确定可用服务特点的方法.SDP发现协议提供下面的能力 <1>为客户提供搜索所需要服务的能力. <2>允许基于服务类型搜索服务 & ...
- POI简易帮助文档系列--给Excel设置样式
正如Html需要CSS一样,我们的POI生成的Excel同样需要样式才能更完美的表现我们的数据.下面还是从简单的例子出发,学习和了解POI的样式设计. 一.我的位置. package com.myja ...
- JS-009-屏幕分辨率、浏览器显示区域、元素位置获取
此文简略讲述有关屏幕大小.元素位置及大小获取. 执行文中脚本时,请先打开 Chrome 浏览器,并切换至开发者工具的控制台,并打开网址:http://www.yixun.com/,文中元素事例为页面元 ...
- Web service是什么?
原文:http://www.ruanyifeng.com/blog/2009/08/what_is_web_service.html 我认为,下一代互联网软件将建立在Web service(也就是&q ...
- SQL、LINQ、Lambda 三种用法(转)
SQL.LINQ.Lambda 三种用法颜色注释: SQL LinqToSql Lambda QA1. 查询Student表中的所有记录的Sname.Ssex和Class列.select sname, ...
- python笔记 - day6
python笔记 - day6 参考: http://www.cnblogs.com/wupeiqi/articles/5501365.html 大纲: 利用递归,实现阶乘: Python反射 pyt ...