gradle

gradle tasks :查看所有的taske命令

bootJar:打包,讲项目的所有依赖和主工程代码打包,一个可直接执行的一个包,不需要tomcat运行

gradle使用bootjar打包后后,解压出来的三个目录

BOOT-INF:

​ classes:存放java文件编译后的class文件

​ lib:所有的lib依赖包

META-INF:

​ MANIFEST.MF:清单文件,描述当前项目可执行的一些信息

org/

​ springframework/

​ boot/

​ loader/: 打包jar包,没有显现的加入在第三方jiar包中,默认通过网络拉取下载,loader文件中JarLauncher.class文件中设置了jar包运行时的入口和打包 后文件的结构(定义了BOOT-INF,META-INF中放什么数据)

public class JarLauncher extends ExecutableArchiveLauncher {
private static final String DEFAULT_CLASSPATH_INDEX_LOCATION = "BOOT-INF/classpath.idx";
static final EntryFilter NESTED_ARCHIVE_ENTRY_FILTER = (entry) -> {
return entry.isDirectory() ? entry.getName().equals("BOOT-INF/classes/") : entry.getName().startsWith("BOOT-INF/lib/");
}; public JarLauncher() {
} protected JarLauncher(Archive archive) {
super(archive);
} protected ClassPathIndexFile getClassPathIndex(Archive archive) throws IOException {
if (archive instanceof ExplodedArchive) {
String location = this.getClassPathIndexFileLocation(archive);
return ClassPathIndexFile.loadIfPossible(archive.getUrl(), location);
} else {
return super.getClassPathIndex(archive);
}
} private String getClassPathIndexFileLocation(Archive archive) throws IOException {
Manifest manifest = archive.getManifest();
Attributes attributes = manifest != null ? manifest.getMainAttributes() : null;
String location = attributes != null ? attributes.getValue("Spring-Boot-Classpath-Index") : null;
return location != null ? location : "BOOT-INF/classpath.idx";
} protected boolean isPostProcessingClassPathArchives() {
return false;
} protected boolean isSearchCandidate(Entry entry) {
return entry.getName().startsWith("BOOT-INF/");
} protected boolean isNestedArchive(Entry entry) {
return NESTED_ARCHIVE_ENTRY_FILTER.matches(entry);
} public static void main(String[] args) throws Exception {
(new JarLauncher()).launch(args);
}
}

配置文件说明

//相当于plugins{}
//开发语言
apply plugin :"java"
// 打包方式
apply plugin :"war"
//下载idea相关插件
apply plugin: "idea"
//maven的相关插件
apply plugin: "maven" apply plugin: 'org.akhikhl.gretty' //apply from: 'https://raw.github.com/akhikhl/gretty/master/pluginScripts/gretty.plugin' buildscript {
repositories {
mavenCentral()
} dependencies {
classpath 'org.akhikhl.gretty:gretty:2.0.0'
}
} repositories {
mavenCentral()
} if (!project.plugins.findPlugin(org.akhikhl.gretty.GrettyPlugin))
project.apply(plugin: org.akhikhl.gretty.GrettyPlugin) //配置服务器相关属性 tomcat
/*buildscript {
repositories {
mavenCentral()
}
dependencies{
classpath 'org.zkhikhl.gretty:gretty:2.0.0'
}
}
repositories {
mavenCentral()
}
if (!project.plugins.findPlugin(org.akhikhl.gretty.GretyPlugin))
project.apply (plugin: org.akhikhl.gretty.GretyPlugin)
//配置tomcat的属性*/ gretty {
// 端口号
httpPort = 8080
// 项目名
contextPath = '/mygradle'
host = 'localhost'
httpEnabled = true
// servlet的容器
servletContainer = 'tomcat8'
// 热部署
scanInterval = 1
// 检测是否发生修改,修改立刻生效
fastReload = true
// 日志级别
loggingLevel = 'DEBUG'
// 日治在哪里显示,在控制台显示
consoleLogEnabled = true
// ... many more properties //调试配置 监听端口 需要在Run-->Edit-->添加remote-->修改监听端口 默认5005
//
debugPort = 8888
debugSuspend = true
} /*
plugins {
//开发语言
id 'java'
// 打包方式
id 'war'
}*/ group 'com.zhang'
version '1.0-SNAPSHOT'
//指定java的jdk
sourceCompatibility = 1.8
targetCompatibility = 1.8 repositories {
// 依赖下载仓库:这里是maven仓库
mavenCentral()
}
//指定依赖包下载私服
/*dependencies{
repositories {
maven{
url:制定的ip地址
}
}
}*/ //jar包
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}
//设置项目的各个阶段的编码
tasks.withType(JavaCompile){
options.encoding = "UTF-8"
}
[compileJava,javadoc,compileTestJava]*.options*.encoding ="UTF-8"

gradles理解和文件配置的更多相关文章

  1. 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap

    上篇<深入浅出Mybatis系列(七)---mapper映射文件配置之insert.update.delete>介绍了insert.update.delete的用法,本篇将介绍select ...

  2. Spring、Spring MVC、MyBatis整合文件配置详解

    原文  http://www.cnblogs.com/wxisme/p/4924561.html 主题 MVC模式MyBatisSpring MVC 使用SSM框架做了几个小项目了,感觉还不错是时候总 ...

  3. Spring简单的文件配置

    Spring简单的文件配置 “计应134(实验班) 凌豪” 一.Spring文件配置 spring至关重要的一环就是装配,即配置文件的编写,接下来我按刚才实际过程中一步步简单讲解. 首先,要在web. ...

  4. 深入浅出Mybatis系列(八)---mapper映射文件配置之select、resultMap good

    上篇<深入浅出Mybatis系列(七)---mapper映射文件配置之insert.update.delete>介绍了insert.update.delete的用法,本篇将介绍select ...

  5. 转载 Spring、Spring MVC、MyBatis整合文件配置详解

    Spring.Spring MVC.MyBatis整合文件配置详解   使用SSM框架做了几个小项目了,感觉还不错是时候总结一下了.先总结一下SSM整合的文件配置.其实具体的用法最好还是看官方文档. ...

  6. JavaScript日历控件开发 C# 读取 appconfig文件配置数据库连接字符串,和配置文件 List<T>.ForEach 调用异步方法的意外 ef 增加或者更新的习惯思维 asp.net core导入excel 一个二级联动

    JavaScript日历控件开发   概述 在开篇之前,先附上日历的代码地址和演示地址,代码是本文要分析的代码,演示效果是本文要实现的效果代码地址:https://github.com/aspwebc ...

  7. 深入理解Java中配置环境变量

    深入理解Java中配置环境变量 配置的目的: 本来只在安装JDK的bin目下能运行java.exe,javac.exe,jar.exe,javadoc.exe等Java开发工具包命令,我们现在想让在所 ...

  8. Apache 中httpd.conf文件配置详解(转载)

    httpd.conf文件配置详解   Apache的基本设置主要交由httpd.conf来设定管理,我们要修改Apache的相关设定,主要还是通过修改httpd.cong来实现.下面让我们来看看htt ...

  9. 对vue中 默认的 config/index.js:配置的详细理解 -【以及webpack配置的理解】-config配置的目的都是为了服务webpack的配置,给不同的编译条件提供配置

    当我们需要和后台分离部署的时候,必须配置config/index.js: 用vue-cli 自动构建的目录里面  (环境变量及其基本变量的配置) var path = require('path') ...

随机推荐

  1. Java Int类型与字符,汉字之间的转换

    /** * java 中的流主要是分为字节流和字符流 * 再一个角度分析的话可以分为输入流和输出流 * 输入和输出是一个相对的概念 相对的分别是jvm虚拟机的内存大小 * 从另一个角度讲Java或者用 ...

  2. ESP8266系列图片外观 Wi-Fi模块一共有01~14十多款模块

  3. JVM的艺术-对象创建与内存分配机制深度剖析

    JVM的艺术-对象创建与内存分配机制深度剖析 引言 本章将介绍jvm的对象创建与内存分配.彻底带你了解jvm的创建过程以及内存分配的原理和区域,以及包含的内容. 对象的创建 类加载的过程 固定的类加载 ...

  4. 对CAS中atomicInteger实现的思考

    p.p1 { margin: 0; font: 11px Monaco } span.s1 { color: rgba(147, 26, 104, 1) } span.s2 { color: rgba ...

  5. git分支的创建与分支之间合并的底层原理

    开发一个版本,采用的发布流程: (1).从master的最新代码拉取一个开发分支,在上面进行开发(这里假设开发分支为dev) (2).在开发分支上不断地进行提交版本,期间,master也会有因为其他版 ...

  6. Oracle-序列-存储过程-视图-索引-触发器

    课程介绍 1. 约束(掌握) 2. 序列(掌握) 3. 索引(掌握) 4. 视图(掌握) 5. 存储过程(掌握) 6. 自定义函数(掌握) 7. 触发器(掌握) 数据库对象的命名规则 1.对象名称必须 ...

  7. 想学Python不知如何入门,教你!

    一.入门引导   想必有很多小伙伴想学习Python,又不知道如何入门,总觉得学习一定要头悬梁,锥刺股!NO,今天给大家分享下如何轻松入门Python!   首先,我们要学习Python,那一定要和你 ...

  8. Flutter 布局类组件:流式布局(Wrap和Flow)

    前言 把超出屏幕显示范围会自动折行的布局称为流式布局.Flutter中通过Wrap和Flow来支持流式布局,将Row换成Wrap后溢出部分则会自动折行. Wrap 接口描述 Wrap({ Key ke ...

  9. #2020征文-开发板# 用鸿蒙开发AI应用(五)HDF 驱动补光灯

    目录: 前言 硬件准备 HDF 驱动开发 总结 前言上一篇,我们在鸿蒙上运行了第一个程序,这一篇我们来编写一个驱动开启摄像头的红外补光灯,顺便熟悉一下鸿蒙上的 HDF 驱动开发. 硬件准备先查一下原理 ...

  10. wpf 通过为DataGrid所绑定的数据源类型的属性设置Attribute改变DataGrid自动生成列的顺序

    环境Win10 VS2019 .Net Framework4.8 在wpf中,如果为一个DataGrid绑定到一个数据源,默认情况下DataGrid会为数据源类型的每个属性生成一个列(Column)对 ...