使用gradle初始化(创建)java的目录结构

论坛 期权论坛 脚本     
匿名技术用户   2020-12-27 16:49   51   0

使用eclipse创建项目的时候,为了更符合gradle的标准,需要初始化项目目录。首先在项目中创建build.gradle 文件。

附:build.gradle文件常用任务解析:
apply plugin: 'maven': 使用maven做为jar包的信赖管理,通过mave仓库下载项目所需的信赖包
apply plugin: 'war':指定web项目,有这行时我们需要创建 src/main/webapp 目录,项目编译(在项目提示符下执行:gradle build)时生成项目的war包。
apply plugin: 'java': 指定项目为java项目,项目编译(在项目提示符下执行:gradle build)时生成项目的jar包。
apply plugin: 'eclipse-wtp':插件将构建web项目的开发环境,生成所需要的.project,.classpath等文件。因为我web开发使用的 是eclipse-j2ee版本,所以指定为wtp环境。
apply plugin: 'eclipse':java项目的eclipse开发环境构建.生成所需要的.project,.classpath等文件。
apply plugin: 'jetty':加入jetty的支持,代码修改后直接执行命令gradle jettyRun即可运行web项目。
repositories: 指定仓库使用。
dependencies:项目依赖定义,compile为编译级别依赖,还有testCompile为测试级别的依赖等。
compile: jar包的依赖配置有几种方法,我这里采用的是较为简略的方式,其中还有一种是:

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

1
2
3
4
5
6
7
8
src
├── main
│ ├── java
│ ├── resources
│ └── webapp
└── test
├── java
└── resources
java的源码目录:src/main/java
java的测试代码目录:src/test/java
资源文件目录:src/main/resources
测试的资源目录:src/test/resources
WEB项目的目录:src/main/webapp 这个目录包含Web应用的源文件(CSS文件、Javascript文件、JSP文件等),即便War插件在项目的目录布局下添加了src/main/webapp目录,但它实际上并没有被真正创建。如果我们需要这个目录,那就必须自己来创建。

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,webapp} src/test/{java,resource}
#或者 mkdir -p src{main,test}/{java,resources} src/webapp

本文原始链接

gradle eclipse 命令即可。


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

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

apply plugin: 'java'
apply plugin: 'eclipse'

task createJavaProject << {
sourceSets*.java.srcDirs*.each{ it.mkdirs() }
sourceSets*.resources.srcDirs*.each{ it.mkdirs()}
}

执行下面命令

gradle createJavaProject eclipse

Java Web 项目,这个 build.gradle


apply plugin: 'java'
apply plugin: 'eclipse-wtp'
apply plugin: 'war'

task createJavaProject << {
sourceSets*.java.srcDirs*.each{ it.mkdirs() }
sourceSets*.resources.srcDirs*.each{ it.mkdirs()}
}

task createWebProject(dependsOn: 'createJavaProject') << {
defwebAppDir = file("$webAppDirName")
webAppDir.mkdirs()
}

执行下面命令

gradle createWebProject eclipse

创建好了基本的目录之后立即把 createJavaProject 和 createWebProject 这两任务删去。

参考:http://unmi.cc/initialize-gradle-project-layout/

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP