gradle demo代码

示例介绍

 ToDo应用程序 只实现添加待办事项

java应用程序版

Web版

idea是可以为gradle项目自动生成目录的,老师在前面设置没有选择 create directories for empty content root automatically

1.jar用于将文件编译为jar包;2.build会执行build.gradle文件,由于插件是Java,所以也会将文件编译为jar包;3.classes会将文件转为class文件;3.clean会清除操作

命令行 java -classpath build/libs/todo-1.0-SHAPSHOT.jar com.mwzhfy.todo.App

*.jar中没有主清单属性

打开jar包的META-INF/MANIFEST.MF文件加入下面的代码(注意:后面有个空格)

Main-Class:com.mwzhyf.todo.App(你的Main Class文件地址)


在build.gradle文件中添加插件如下:

apply plugin:'war'之后,则会在该项目的gradle Task的build目录下,多一个war的执行命令,双击war就可以生成war包


任务(task)中的命令

dependsOn  声明依赖

doFirst动作列表最前边添加动作          dolast (<<)动作列表最后添加动作

一个task中可以包含多个doFirst和dolast


apply 使用插件

dependencies 使用依赖

repositories  声明仓库

task  声明任务


build.gradle(构建脚本)


Gradle构建中的两个基本概念是项目(project)和任务(task)

每个构建至少包含一个项目,项目中包含一个或多个任务;在多项目构建中,一个项目可以依赖于其他项目;类似的,任务可以形成一个依赖关系图来确保他们的执行顺序;一个项目代表一个正在构建的组件(比如一个jar文件),当构建启动后,Gradle 会基于build.gradle实例化一个org.gradle.api.Project类,并且能够通过project变量使其隐式可用 其中group,name,version是project的属性,下面 apply denpendencies respositories task是project的方法 属性的其他配置方式 ext gradle.properties

任务对应org.gradle.api.Task;主要包括任务动作和任务依赖。任务动作定义了一个最小的工作单元。可以定义依赖于其他任务、动作序列和执行条件;


初始化阶段:gradle会根据构建脚本创建一个项目,也就是使project类隐式可用,多项目中会初始化构建的所有项目。 配置阶段:生成task依赖顺序,以及执行顺序,除了动作之外,初始化任务。 执行阶段:执行task动作代码。中间可穿插钩子方法

几乎所有的基于JVM的软件项目都需要依赖外部类库来重用现有的功能。自动化的依赖管理可以明确依赖的版本 ,解决因传递性依赖带来的版本冲突;

工件坐标 goup name version 

常用仓库      1 mavenLocal/mavenCentral/jcenter 

2 自定义maven仓库 3 文件仓库

依赖的传递性     ​b 依赖a   如果c 依赖b  那么c依赖a

自动化依赖管理   构建工具根据构建配置(build.gradle)从远程仓库下载jar包,到本地仓库,当使用时,到本地仓库去找,如果一个jar包被多次使用就放到依赖缓存中

http://search.maven.org/

依赖阶段配置

compile  runtime 

testCompile testRuntime

testRuntime extends ​rutime extends compile  

testRuntime extends testCompile  extends compile 

由于传递依赖,使得项目中出现了版本冲突,gradle默认的解决版本冲突的策略是依赖最高版本的Jar包 修改默认的gradle处理版本冲突的策略,使得项目在出现版本冲突时,直接构建失败,以便于开发人员去解决版本冲突的问题


解决版本冲突 1 查看依赖报告2排除传递性依赖 3 强制一个版本

修改默认解决策略 configrations.all{

resolutionStrategy{

resolutionStrategy{

failOnVersionConflict()

}

}

}

排除传递性依赖 compile(‘org.hibernate:hibernate-core:3.6.3.Final’){

exclude group:"org.slf4j" ,module:"slf4j-api" 

//transitive=false

}

强制指定一个版本

configuration.all{

resolutionStrategy{

force 'org.slf4j:slf4j-api:1.7.24'

}

}

项目模块化 :在企业项目中,包层次和类关系比较复杂,把代码拆分成模块通常是最佳实践,这需要你清晰的划分功能的 边界,比如把业务逻辑和数据持久化拆分开来。项目符合高内聚低耦合时,模块化就变得很容易,这是一条非常好的软件开发实践

TODO模块依赖关系

Web depends on Model 

Web depends on Repository

Repository depends on Model

配置要求

所有项目应用java 插件

web子项目打包成war

所有项目添加logback日志功能

统一配置公共属性

项目结构  子项目+根项目

settings.gradle设置当前项目由那些子项目构建的 todo是根项目
前面有 :  是子项目 在dependce中添加对某个模块的依赖 添加对子项目model的依赖 compile project(":model")

对所有子项目统一配置

allprojects{
    apply plugin:'java'
    sourceCompatibility = 1.8
}

allprojects { }subprojects { }compile project(":module_name")settings.gradle文件中添加 include "module_name" 添加项目的模块

统一设置gradle和version

新建gradle.properties并设置

gradle 测试中识别测试代码的方式:

  1. 对应测试框架的例子写法

  2. 继承自TestCase,groovyTestCase

  3. @Test,@Runwith注解的类

自动化测试 

一些开源的测试框架比如JUnit TestNG 能够版主编写可复用的结构化的测试,为了运行这些测试,先编译,像编译源代码一样。测试代码的作用仅仅用于测试的情况,不应被发布到生产环境中,需要把源代码和测试代码分开

测试配置

dependencies {

testCompile 'junit:junit4.11’

}

​测试发现

任何继承自junit.framework.TestCase或groovy.util.GroovyTestCase的类

任何被@RunWith的类

任何至少包含一个被@Test注解的类


发布项目的三步:

  1. 配置发布使用的插件


  2. 配置私服的地址

  3. 双击Publish任务

apply plugin:'maven-publish'

publishing{

publications{

myPublish(MavenPublication){

from components.java

}

}

repositories{

maven{

name "myRepo"

url “”

}

}

}

gradle的使用流程: 新建项目-->编码-->测试-->打包-->发布


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Java 网站开发是一个非常常见和流行的领域,可以用 Java 编写大型和复杂的应用程序。以下是一个基于 Spring MVC 的简单代码示例: 1. 首先,我们需要引入所需的依赖项。我们可以使用 Maven 或 Gradle 构建工具将其添加到项目中。 2. 接下来,我们需要创建一个控制器类,使用 @Controller 注释。例如,以下是一个简单的控制器类,它将处理 GET 请求: ``` @Controller public class HomeController { @RequestMapping(value = "/", method = RequestMethod.GET) public String home() { return "home"; } } ``` 在这个示例中,HomeController 处理网站的根路径并返回名为 home 的视图。 3. 接下来,我们需要定义这个视图。我们可以使用 JSP、Thymeleaf 或其他模板引擎。这里,我们将使用 JSP。在我们的应用程序的 WEB-INF/views 文件夹中创建一个名为 home.jsp 的新文件。 在这个示例中,我们可以添加 HTML 和 JSTL 标记来格式化我们的页面,如下所示: ``` <!DOCTYPE html> <html> <head> <title>Home</title> </head> <body> <h1>Hello, world!</h1> </body> </html> ``` 4. 最后,我们需要将我们的应用程序部署到一个 Web 服务器上,并将其启动。这里,我们将使用 Apache Tomcat 服务器。 将编译后的应用程序包(WAR 文件)复制到 Tomcat 的webapps目录下,然后启动 Tomcat。我们可以在浏览器中输入 http://localhost:8080/ 访问我们的应用程序。 以上是一个简单的示例,它展示了如何使用Java、Spring MVC和JSP开发简单的网站。当然,网站开发是一个非常复杂的领域,需要涉及更多的技术和知识,包括数据库、安全性、性能优化等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lozhyf

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值