zoukankan      html  css  js  c++  java
  • Gradle学习之构建java与web项目

    一.使用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上下文路径

     

  • 相关阅读:
    UVA 11174 Stand in a Line,UVA 1436 Counting heaps —— (组合数的好题)
    UVA 1393 Highways,UVA 12075 Counting Triangles —— (组合数,dp)
    【Same Tree】cpp
    【Recover Binary Search Tree】cpp
    【Binary Tree Zigzag Level Order Traversal】cpp
    【Binary Tree Level Order Traversal II 】cpp
    【Binary Tree Level Order Traversal】cpp
    【Binary Tree Post order Traversal】cpp
    【Binary Tree Inorder Traversal】cpp
    【Binary Tree Preorder Traversal】cpp
  • 原文地址:https://www.cnblogs.com/niechen/p/8270654.html
Copyright © 2011-2022 走看看