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

时间:2022-02-07 16:38:46

使用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 的标准目录布局,即

12345678 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/