精华内容
下载资源
问答
  • java项目经验包装简历指南
  • 企业找不到?...(适合包装项目经验的人群) ps:无奈Java市场已经被搞垮,趋于市场不得不适应市场的生存法则,走上包装的道路。如果我们能够联合起来,企业TMD就不会拒绝这么应届生,源头还是企业的锅。
  • 构建Java项目4.1 gradle构建Java流程4.2 定制gradle的Java项目5.构建Web项目5.1使用war插件5.2定制war插件5.3 使用嵌入式容器Jetty运行5.4 定制Jetty插件6. Gradle包装器6.1 配置包装器6.2 使用包装器6.3 定制包装器...

    1.定制项目结构

    Gradle默认项目结构 就是Maven的项目结构

    • src/main/java放应用源代码
    • src/main/resources 放配置文件
    • src/test/java 放测试代码

    在build.gradle中添加如下代码

    //应用源代码位置
    sourceSets {
        main{
            java {
                srcDirs =['src/java']
            }
        }
    //测试源代码文件
        test{
            java{
                srcDirs =['src/test']
            }
        }
    }
    

    如图:这里自定义的目录
    在这里插入图片描述

    2.定制项目输出路径

    在build.gradle中添加如下代码

    buildDir="out"  //这里表示输出路径是out文件,默认是build文件,上图也可见
    

    3.配置和使用外部依赖

    在build.gradle中添加如下代码

    //仓库
    repositories {
        mavenCentral()
    }
    
    //依赖]
    dependencies {
        compileOnly 'org.projectlombok:lombok:1.18.2'
        testCompile group: 'junit', name: 'junit', version: '4.12'
    }
    

    4.构建Java项目

    4.1 gradle构建Java流程

    在build.gradle中添加如下代码
    步骤一:

    apply plugin : 'java'
    

    这一行代码就可以让Gradle自己去找java的源文件,默认是src/main/java目录去找,如果要修改见上面的定制还有输出目录

    **步骤二:**新建一个Java项目(需要主类一个包含Main方法)
    **步骤三:**执行gradle build命令,这样会生成一个build目录包含class文件和libs以及临时文件,我这里是定制的输出用的out目录
    在这里插入图片描述

    步骤四: 执行命令java -cp out/classes/main com.vison.ToDoApp
    执行main方法(com.vison.ToDoApp表示你的主类地址)这是通过执行class文件来执行的

    4.2 定制gradle的Java项目

    在上面的基础上,在build.gradle中添加如下代码

    version '1.0-SNAPSHOT'
    sourceCompatibility = 1.8  //设置Java版本编译兼容1.8
    //指定main位置
    jar{
        manifest {
            attributes 'Main-class':'com.vison.ToDoApp'
        }
    }
    

    然后重新gradle clean ,gradle build 会看到项目会生成带有版本号的jar文件
    可以通过java -jar out/libs/ToDoGradle-1.0-SNAPSHOT.jar 包可以执行文件中的main方法。

    5.构建Web项目

    5.1使用war插件

    **步骤一:**在build.gradle中添加如下代码

    //war插件,表示生成一个war包, war应用默认目录是src/main/webapp(js.css.html文件目录)
    apply plugin : 'war'
    //依赖,用原始的servlet,这里注意providedCompile ,runtime  表示configuration,和maven中的scope雷同
    dependencies {
        providedCompile 'javax.servelt:servlet-api:2.5'
        runtime 'javax.servlet:jstl:1.1.2'
    }
    

    **步骤二:**构建web项目
    使用默认的目录如下:
    在这里插入图片描述

    **步骤二:**执行命令gradle build会在build/libs中生成war包(war插件来执行的)war包任务将目录src/main/webapp内容原封不动的拷贝到WAR包的根目录下,编译后的class文件最终是会放到WEB-INF/classes中,通过依赖定义的包会放在WEB-INF/lib中。如下WAR包中的文件
    在这里插入图片描述

    5.2定制war插件

    如果我们不是用默认的web项目目录,如下使用这个目录结构
    静态资源放在static中,原来的webapp改为了webfiles目录

    在这里插入图片描述
    步骤:在build.gradle中添加如下代码

    webAppDirName='webfiles'   //修改web应用源目录位置
    
    war{
        from 'static'  //将static目录添加到WAR根目录下
    }
    
    
    5.3 使用嵌入式容器Jetty运行

    **步骤一:**在build.gradle中添加如下代码

    apply plugin : ‘jetty’
    

    步骤二: 执行命令gradle jetty run 就可以了

    5.4 定制Jetty插件

    修改端口和上下文路径

    jettyRun{
        httpPort =9090
        contextPath='toDoList'  //这个表示新的项目地址名访问的地址http://localhost:9090/toDoList  访问该项目
    

    6. Gradle包装器

      由包装器支持的gradle脚本非常适合自动化发布过程的一部分,比如持续集成。主要是避免团队开发gradle版本不一样,其他队员从代码仓库中上拉取代码要让gradle版本在本地开发相同。

    6.1 配置包装器

    步骤一: 在build.gradle中添加如下代码

           task wrapper(type:Wrapper){
    			gradleVersion ='4.4'  //gradle版本
    		}	
    

    步骤二: 本地执行命令 gradle wrapper
      这个命令会默认从Gradle的微类库中下载gradle包并解压
      另外下载完了你的本地会生成在$HOME_DIR/.gradle/wrapper/dists目录,你的项目中也会有一个wrapper目录;还有gradlew 和gradlew.bat两个脚本文件。

    • gradlew 这个是*nix的执行包装器shell脚本
    • gradlew.bat这个windows的执行包装器脚本
    6.2 使用包装器

    使用上面这两个脚本例如windows环境执行 gradlew.bat jettyrun
    linux环境中 执行命令gradlew.bat jettyrun运行jetty容器

    6.3 定制包装器

    通常公司都是用自己的内网,所以gradle可以定制url下载,当然还有很多特性可以定制可以查看下官网内容。

    task wrapper(type:Wrapper){
        gradleVersion ='4.4'   //请求的版本
        distributionUrl ='http://myenterprise.com/gradle/dists' //获取gradle包装器的url
        distributionPath = 'gradle-dists' //包装器被解压后存放的相对路径
    }
    
    展开全文
  • 电力项目、交通灯管理系统、银行业务调度系统、在线支付、宅急送项目 全套视频 百度网盘:https://pan.baidu.com/s/1oFZ8aabxkJRqtVMd7Jlg5g 提取码:kgol

     电力项目、交通灯管理系统、银行业务调度系统、在线支付、宅急送项目 全套视频

    百度网盘:https://pan.baidu.com/s/1oFZ8aabxkJRqtVMd7Jlg5g

    提取码:kgol

    展开全文
  • 前言:之前一直接触使用Gradle完成Android项目的自动化构建,所谓重新认识Gradle是因为最近看了《Gradle IN Action》一书,对gradle进行了一次全面深刻的重新的认识。所以决定以系列博客,来完成自己对Gradle学习之...

    前言:之前一直接触使用Gradle完成Android项目的自动化构建,所谓重新认识Gradle是因为最近看了《Gradle IN Action》一书,对gradle进行了一次全面的重新的认识。所以决定以系列博客,来完成自己对Gradle学习之路的一个总结。关于书中的一些源码我备份了一份在github上:https://github.com/ChenSWD/CopyGradleInAction,有该书的pdf版本,所有目录名以”-注释“结尾的是在博客中引用过的脚本,都是添加了代码注释的。

    一、重新梳理认识一些概念

    1、项目自动化:有效的项目自动化是促使软件成功交付的关键因素,是以一种可重复、可持续的方式构建和交付软件。它的好处有:①防止手动介入项目的交付带来的耗时和错误,毕竟人为的编译拷贝等操作总会避免不了犯错;②可以创建重复的构建,即:将重复有序的软件构建过程组装起来;③不依赖于特定类型的操作系统,具有可移植性。

    2、构建工具:构建工具是一种可编程工具,能够让你以可执行和有序的任务来表达自动化的需求。如图,每个任务代表一个工作单元,这些任务的执行顺序非常重要,编译任务就必须要在拷贝之前完成。Java的构建工具一般有Ant、Maven、当然还有Gradle。
    这里写图片描述

    3、Gradle:Gradle是基于JVM构建工具的新一代版本,它使用一种强大且具有表达性的基于Groovy的领域特定语言(DSL),而不是XML(Ant、Maven基于xml),允许使用Java或者Groovy语言编写定制逻辑,其实Gradle就是Groovy,它提供了基于Java的语法糖,你编写的所有脚本都是Groovy,能够以编程语言来表达你需要的构建是Gradle的一大亮点。Gradle的座右铭:“让不可能成为可能,让可能变得简单,让简单变得优雅”
    这里写图片描述
    Gradle的特性简单介绍:
    ①可表达性的构建语言和底层API:在Gradle脚本中每一个元素都有一个与Java类一对一的映射,如每一个构建脚本映射成Gradle API中的Project类型的一个实例,dependencies配置块触发project实例的dependencies()方法。
    ②灵活的约定:Gradle最主要的思想之一就是针对你的项目给予引导和有意义的默认值,Gradle具有统一的项目结构布局(如图),Gradle中的每个Java项目都确切的知道源码和测试类文件的位置,知道如何编译源码,运行单元测试,发布代码,这些任务都被完全集成到了构建的生命周期中。
    这里写图片描述
    ③鲁棒和强大的依赖管理:Gradle提供了一个基础设施去管理解析、获取和存储依赖的复杂性,一旦相关的依赖被下载到本地缓存中,那么在你的项目中就可以使用了。

    二、Gradle的基本使用
    1、每一个Gradle构建都是从一个脚本开始的。Gradle默认的构建脚本的名字是build.gradle,在执行gradle命令时,就会去寻找build.gralde文件。使用gradle命令行要配置gradle环境变量
    ①简单使用,从HelloWorld开始:创建一个build.gradle文件,定义一个helloWorld的任务(task),将打印语句添加到action中(doLast)。

    task helloWorld{
        doLast{
            println('Hello World!')
        }
    }
    运行该task:
    gradle -q helloWorld
    Hello World!

    ②简单的任务依赖:

    task startSession {
        doLast {
            chant()
        }
    }
    
    def chant() {
        /**每个脚本都带有一个ant属性,它赋予了直接访问ant任务的能力*/
        ant.echo 'Repeat after me...'
    }
    /**这是一个动态的task,可以在运行的时候指定它的名字。
     * 该方法是Groovy在java.lang.Number中扩展的times方法,
     * 创建3个新的task,隐含变量it(counter)指定循环的次数,这里使用计数器来创建task的名字.*/
    3.times { counter ->
        task "yayGradle$counter" {
            doLast {
                println 'Gradle rocks'
            }
        }
    }
    /**dependsOn说明了task之间的依赖,gradle确保被依赖的task总是在其之前执行。*/
    yayGradle0.dependsOn startSession
    yayGradle2.dependsOn yayGradle1, yayGradle0
    task groupTherapy(dependsOn: yayGradle2)
    
    执行输出:
    gradle groupTherapy
    > Task :startSession 
    [ant:echo] Repeat after me...
    > Task :yayGradle0 
    Gradle rocks
    > Task :yayGradle1 
    Gradle rocks
    > Task :yayGradle2 
    Gradle rocks

    这里写图片描述

    2、Gradle命令行:我们是通过命令行来执行gradle脚本的,如之前gradle helloWorld就直接可以运行helloWorld task。
    ①tasks 命令:gradle -q tasks命令可以显示该脚本所有可用的task,gradle -q tasks –all 可以获得关于task的更多信息。
    ②gradle命令可以一次执行多个任务,gradle yayGradle0 groupTherapy命令会先执行yayGradle0 任务在执行groupTherapy任务,但是任务只会执行一次,yayGradle0 作为groupTherapy的依赖也只会执行一次。
    ③gradle可以以守护进程开启,gradle helloWorld –daemon,启动后,gradle会在后续的构建中重用之前创建的守护进程,避免启动时造成开销。

    3、构建Java项目。Gradle插件可以自动化执行相关构建的任务,Java插件是Gradle自身装载的一个插件,它为项目建立一个标准的项目布局,并确保有意义、有顺序地执行任务。
    ①使用Java插件:在build.gradle 文件中加入:

    apply plugin:'java'

    该行代码代表项目使用Java插件构建你写的Java代码,该插件会构建出一个JAR包。Gradle是怎么找到源码的位置呢?Java插件引入的约定之一就是源代码的位置,在默认情况下,插件会到src/main/java目录下查找。所以,需要将要参与编译构建的代码放到该目录下面,IDE一般在创建相关项目时就已经创建了相关的项目结构。
    ②开始构建。Java插件提供一个任务叫做build,该任务可以以正确的顺序编译源代码,组装成JAR文件。
    build.gradle脚本文件如下,脚本可以动态的设置源码的目录和生成文件的目录,这里修改为out目录下。我们知道JAR文件有可运行和不可运行两种,可运行的JAR文件(可以通过java -jar 命令运行的JAR文件)需要有下面的Main-Class相关设置(要设置主类),否则只能当做普通工具包使用。

    apply plugin: 'java'
    /**定义项目的版本*/
    version = 0.1
    /**jdk版本*/
    sourceCompatibility = JavaVersion.VERSION_1_7
    
    sourceSets {
        main {
            java {
                /**设置项目的源码目录是src*/
                srcDirs = ['src']
            }
        }
        test {
            java {
                /**设置项目的测试代码目录是test*/
                srcDirs = ['test']
            }
        }
    }
    /**修改build生成目录,默认是build目录*/
    buildDir = 'out'
    /**设置主类,设置了该属性生成的JAR文件才能被执行*/
    jar {
        manifest {
            attributes 'Main-Class': 'com.manning.gia.todo.ToDoApp'
        }
    }

    运行gradle build命令,UP-TO-DATE意味着任务被跳过,Gradle增量式构建支持自动鉴别不需要被运行的任务。NO-SOURCE因为我没有建相关目录。

    >gradle build
    > Task :compileJava UP-TO-DATE   //编译Java产品代码
    > Task :processResources NO-SOURCE
    > Task :classes UP-TO-DATE
    > Task :jar UP-TO-DATE           //组装JAR文件
    > Task :assemble UP-TO-DATE
    > Task :compileTestJava NO-SOURCE  //编译测试代码,我没有编写相关测试代码
    > Task :testClasses UP-TO-DATE     
    > Task :test NO-SOURCE           //运行测试
    > Task :check UP-TO-DATE
    > Task :build UP-TO-DATE

    ③配置项目依赖,在Java世界里,依赖都是以JAR文件的形式发布的,许多类库可以在仓库中找到,仓库是一个文件系统或者是一个中心服务器,Gradle要求至少使用一个仓库来使用依赖。仓库就是存储你要依赖的项目的一个服务器,可以从里面下载你依赖的相关的JAR文件。使用依赖需要配置元素:repositories 和 dependencies。
    build.gradle脚本,如何查找依赖:可以在Maven Central中查找依赖的详细信息。http://search.maven.org/ 上面,仓库提供了一个简单的搜索入口。

    apply plugin: 'java'
    /**配置对maven仓库的依赖,下载依赖源码的中心仓库  */
    repositories {
        mavenCentral()
    }
    /**添加要依赖的库,现在一般使用implementation(compile被废弃)*/
    dependencies {
        compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.1'
    }

    运行脚本:compileJava任务会去下载相关的依赖

    >gradle build
    <-----<-----<-----Download https://repo.maven.apache.org/maven2/org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.pom
    Download https://repo.maven.apache.org/maven2/org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.jar

    4、Gradle包装器:能够让没有安装Gradle运行环境的机器运行Gradle构建。开发过程中,不同开发人员很可能因为选错构建工具版本或者运行时环境产生对构建结果不好的影响,比如在自己的机器上构建成功,在别的机器上却构建失败。
    包装器可以让构建脚本运行在指定版本的Gradle上,它是通过自动从中心仓库下载Gradle,最终创建一个独立于系统和Gradle版本的可靠的和可重复的构建。
    ①配置build.gradle脚本:

    /**创建一个包装器任务,通过改变gradleVersion的值和重新运行该任务可以升级包装器的版本*/
    task wrapper(type: Wrapper) {
        gradleVersion = '4.4'
    }
    
    执行脚本:
    >gradle wrapper

    执行后,会生成构建器文件(下图),以后就可以用包装器的脚本执行构建了。
    这里写图片描述

    ②使用包装器:linux执行gradlew的shell脚本,windows操作系统直接运行gradlew.bat,使用它们运行构建和使用已安装的Gradle运行构建是一样的。在包装器运行时,Gradle运行时会被下载、解包并使用,因为有下载Gradle过程,也许构建过程会比较慢。

    ③包装器下载的Gradle默认从Gradle网站(distributionUrl=https://services.gradle.org/distributions/gradle-4.4-bin.zip),但是如果不能访问外网的情况下(也许有些企业不允许访问外网),可以改变默认配置,将它指向存有运行时发布文件的企业内部服务器。
    这里写图片描述

    对于Gradle的基本认识的介绍就到这里,关于task的基本原理和高级使用请参考下一篇博客:https://blog.csdn.net/weixin_38062353/article/details/82710203

    展开全文
  • 这篇文章是关于Java包装类型详解,java的基础知识非常多,但是只要条理清晰地整理,一个知识点一个知识点捋清楚,就能很好地掌握,今天讲的java包装类型,也是我们几乎天天都能用到的java基础知识点,需要理解清楚。...

    这篇文章是关于Java包装类型详解,java的基础知识非常多,但是只要条理清晰地整理,一个知识点一个知识点捋清楚,就能很好地掌握,今天讲的java包装类型,也是我们几乎天天都能用到的java基础知识点,需要理解清楚。基本类型是沿用面向过程开发语言的特性,如c语言,它非常计较程序内存占用的情况,但随着技术日新月异的发展,存储空间越来越大,这点已经改观,转而在意程序的开发便捷性,大型项目构建的支持。为何会这样呢?

    从我电脑的配置大家就可以看出趋势。1998年我拥有了我的第一台电脑。奔腾PII 自己DIY组装的电脑,记忆犹新,当时超前的配置,今天来看太陈旧了。3条32m总共96m内存,昆腾4.3g火球硬盘。而我现在的联想ThinkPad x270笔记本, 16g内存,三星512g SSD固态硬盘。

    a0504e5b02d240c5d6d15acd47efa6fb.png电脑的配置

    可以看出技术革新的变化,随之程序也发生变化,推出了面向对象编程,面向对象编程推崇是类是对象。

    java中的基本数据类型int,double等不是对象,无法通过向上转型获取到Object提供的方法,而像String却可以,只因为String是一个对象而不是一个类型。基本数据类型由于这样的特性,导致无法参与转型,泛型,反射等过程。

    388f3ca3ef2e78a1b03c7dc6d113101e.pngjava

    例如:泛型<>只支持引用类型 ReferenceType为了弥补这个缺陷,java提供了包装类。

    2. 包装类

    Wrapper Class包装类:

    8caa1f0036293629cef1194b29ddbe9c.png

    可以看出java是两种类型相结合的产物,各有特长,那实际开发中如何使用呢?大家可以先简单记忆一下它的规则,日后我们开发中都遵循这个原则:

    在方法体内部尽量使用基本类型,占空间小,用完就释放内存,节约内存在pojo时尽量使用包装类型,例如mybatis持久层框架就必须使用包装类型,否则可能出错哦。(先记忆下来,后期讲到mybatis框架,大家可以验证)

    387c44b33113d59828dbc358382571fa.pngjava

    3.最大值最小值

    package javase.basetype;import org.junit.Test;public class TestValueLimit {@Testpublic void testNumber() {System.out.println("\n==整形值类型==================");byte minByte = Byte.MIN_VALUE;byte maxByte = Byte.MAX_VALUE;System.out.println("byte 取值范围:"+ minByte + "~"+maxByte);short minShort = Short.MIN_VALUE;short maxShort = Short.MAX_VALUE;System.out.println("short 取值范围:"+ minShort + "~"+maxShort);int minInteger = Integer.MIN_VALUE;int maxInteger = Integer.MAX_VALUE;System.out.println("int 取值范围:"+ minInteger + "~"+maxInteger);long minLong = Long.MIN_VALUE;long maxLong = Long.MAX_VALUE;System.out.println("long 取值范围:"+ minLong + "~"+maxLong);}@Testpublic void testFloat() {System.out.println("\n==浮点值类型==================");float minFloat = Float.MIN_VALUE;float maxFloat = Float.MAX_VALUE;System.out.println("float 取值范围:"+ minFloat + "~"+maxFloat);double minDouble = Double.MIN_VALUE;double maxDouble = Double.MAX_VALUE;System.out.println("double 取值范围:"+ minDouble + "~"+maxDouble);}}执行结果:==整形值类型==================byte 取值范围:-128~127short 取值范围:-32768~32767int 取值范围:-2147483648~2147483647long 取值范围:-9223372036854775808~9223372036854775807==浮点值类型==================float 取值范围:1.4E-45~3.4028235E38double 取值范围:4.9E-324~1.7976931348623157E308==字符值类型==================char :a~a~b~b

    4.装箱拆箱

    装箱:将基本数据类型封装为包装类对象

    Integer i = 10; //装箱,10整数,i是包装类型Integer i = new Integer(10); //编译后

    拆箱:将包装类中包装的基本数据类型数据取出

    Integer i = 10; //自动装箱int j = i; //自动拆箱int j = i.intValue(); //编译后

    注:JDK1.5之后提供自动拆装箱,我们使用时可以互相赋值,代码简洁

    关于Java包装类型详解就讲 这些,主要理解包装类型和基本类型的自动装箱和自动拆箱,能明白为什么编程语言要这么设计就可以了。

    展开全文
  • 64位社区版下载地址:https://www.krenger.ch/blog/java-service-wrapper-3-5-14-for-windows-x64/一、制作一个包装项目的模板1.在硬盘上创建文件夹,并在其下创建子文件夹bin,conf,lib,logs2.解压刚下载的文件,并...
  • java spring项目 Spring为您提供了一个方便的工具,可确保您的Java项目具有一致的“ Spring”风格! 认识Spring Java Format插件集! 该工具已于今年5月发布,当前版本为0.0.6。 设置的插件包括: 应用包装和...
  • 很多初级java程序员都活遇到的问题,不管是培训完,还是自学的,到了写简历的时候,没啥写的,尤其是速成班的那种培训,三四个月的时间,只是把基础学了一遍,还不知道学没学会,项目实战就别提了,登录注册都没弄明白,培训...
  • mybatis 位于Java三层框架(持久层、业务逻辑层、表示层)...1、新建一个Java项目,导入数据库连接jar包(mysql-connector-java-5.1.6-bin.jar),再导入两个mybatis常用jar包(mybatis-spring-1.2.3.jar以及mybatis-3.
  • TDLight Java TDLib(和TDLight)的准Java包装器 该包装器使您可以直接访问Java中的TDLib API。...在项目中包含TDLight Java TDLight有两个软件包: ,具有我们优化的TDLib分支(推荐用于bot) (推荐用于GUI客户
  • gs-gradle, 使用Gradle构建Java项目 标记项目gradle目录你将构建什么。你需要什么。设置了项目项目。安装 Gradle找出Gradle可以做什么。构建Java代码声明依赖项使用Gradle包装程序生成项目。摘要文件另请参
  • 默认Java Selenium项目 在扩展BaseTest的测试包中创建新的Java类。 BaseTest将在每次测试之前启动Chrome,并在之后关闭它。 创建JUnit @Test批注并创建以下方法。 您已经在方法签名旁边运行了测试按钮。 您可以使用...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,111
精华内容 444
关键字:

java项目包装

java 订阅