Gradle学习之构建java与web项目

简介: 一.使用Gradle的java插件构建Java项目 1)Gradle插件包含了若干个接口定义和已有的任务项,语法结构:apply plugin:'插件名' ,此处我们定义插件 apply plugin : 'java'   2)Gradle希望我们的java项目需要遵循以下规范: ...

一.使用Gradle的java插件构建Java项目

1)Gradle插件包含了若干个接口定义和已有的任务项,语法结构:apply plugin:'插件名' ,此处我们定义插件

apply plugin : 'java'

 

2)Gradle希望我们的java项目需要遵循以下规范:

    src/main/java :放置java源文件
    src/test/java :放置测试文件,比如单元测试等
    src/main/resources: 此目录下的文件会被作为资源文件打入jar包
    src/test/resources: 放置提供给测试用的配置文件


3) java插件包含了若干个构建项目的任务,最常用的就是build任务,当我们运行build任务时,Gradle会编译,运行我们的测试脚本(类)并生成jar文件在build/lib下

4) 其他常用的任务:
    clean:删除已经构建的目录及其文件
    assemble:编译并生成Jar或者war文件,注意不会运行测试文件
    check:编译并测试代码

二.外部依赖

 

1)和maven类似,如果要在项目中添加所依赖的外部jar文件,我们必须要告诉Gradle在哪里找到它们
语法:

 1 repositories {
 2     jcenter()
 3     mavenLocal() //maven本地仓库
 4     mavenCentral() //maven中心仓库
 5     /* 
 6         指定maven远程仓库地址
 7      */
 8     maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
 9     maven { url "http://repo.spring.io/snapshot" }
10     maven { url "http://repo.spring.io/milestone" }
11 }

 

2)当指定好仓库地址时,我们可以添加依赖
语法:

dependencies{
  compile group:'类似于maven中的groupid',name:'类似于maven中的affactid',version:'版本号'
  compile 'group:name:version'
}

 

三.java多项目构建

 1)gradle也可以支持多项目构建,比如说如下项目:

  multiproject/
    api/
    services/webservice/
    shared/
    services/shared/
2)此时我们要在settings.gradle里配置 依赖的模块:

include "shared", "api", "services:webservice", "services:shared"

 


3)比如说 shared模块要依赖api模块 我们可以在shared模块中的build.gradle文件中这样写:

dependencies {
  compile project(':shared')
}

 

4)常见属性
sourceCompatibility: 使用哪种JDK版本编译
targetCompatibility : 生成class的Java版本

 

四。构建web项目

1)需要添加web插件:apply plugin:'war'
2) war任务 主要用于将web应用程序打包成war
3) 与maven规范一致:web的相关资源位于src/main/webapp下

使用示例:

war {
    from 'src/rootContent' // adds a file-set to the root of the archive
    webInf { from 'src/additionalWebInf' } // adds a file-set to the WEB-INF dir.
    classpath fileTree('additionalLibs') // adds a file-set to the WEB-INF/lib dir.
    classpath configurations.moreLibs // adds a configuration to the WEB-INF/lib dir.
    webXml = file('src/someWeb.xml') // copies a file to WEB-INF/web.xml
}

另外我们可以设置webAppDirName来指定我们web上下文路径

 

目录
相关文章
|
8天前
|
SQL 安全 前端开发
PHP与现代Web开发:构建高效的网络应用
【10月更文挑战第37天】在数字化时代,PHP作为一门强大的服务器端脚本语言,持续影响着Web开发的面貌。本文将深入探讨PHP在现代Web开发中的角色,包括其核心优势、面临的挑战以及如何利用PHP构建高效、安全的网络应用。通过具体代码示例和最佳实践的分享,旨在为开发者提供实用指南,帮助他们在不断变化的技术环境中保持竞争力。
|
10天前
|
PHP 开发者
深入浅出PHP:构建你的第一个Web应用
【10月更文挑战第35天】在数字时代的浪潮中,掌握编程技能已成为通往未来的钥匙。本文将带你从零开始,一步步走进PHP的世界,解锁创建动态网页的魔法。通过浅显易懂的语言和实际代码示例,我们将共同打造一个简单但功能强大的Web应用。无论你是编程新手还是希望扩展技能的老手,这篇文章都将是你的理想选择。让我们一起探索PHP的魅力,开启你的编程之旅!
|
13天前
|
缓存 前端开发 JavaScript
构建高性能与用户体验并重的现代Web应用
构建高性能与用户体验并重的现代Web应用
29 5
|
11天前
|
开发框架 前端开发 JavaScript
利用Python和Flask构建轻量级Web应用的实战指南
利用Python和Flask构建轻量级Web应用的实战指南
38 2
|
10天前
|
数据库 Python
从零开始构建你的第一个Flask Web应
从零开始构建你的第一个Flask Web应
|
人工智能 移动开发 Java
Android Studio插件版本与Gradle 版本对应关系
Android Studio插件版本与Gradle 版本对应关系
2354 0
Android Studio插件版本与Gradle 版本对应关系
|
存储 Java Android开发
Android 开发 - 充分利用Gradle
Android 开发 - 充分利用Gradle
170 2
|
1月前
|
Android开发
Android基于gradle task检查各个module之间资源文件冲突情况
Android基于gradle task检查各个module之间资源文件冲突情况
Android基于gradle task检查各个module之间资源文件冲突情况
|
1月前
|
Android开发
Android gradle task任务检查各个module之间资源文件冲突.md
Android gradle task任务检查各个module之间资源文件冲突.md
Android gradle task任务检查各个module之间资源文件冲突.md
|
5月前
|
C# Android开发 开发者
Android gradle编译时字节码处理
Android gradle编译时字节码处理
69 1