大部分Java项目都是相似的,使用Gradle插件,能够抽象出这些步骤,这样就不必为每个Java项目都编写Gradle的project和task了

引入java插件

apply plugin: 'java'

引入java插件后,该插件会为脚本添加内置的任务,可以执行 gradle -q tasks 进行查看,列出任务列表

外部依赖

repositories {
mavenCentral()
} dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}

依赖配置

依赖范围

  compile:编译期间依赖

  runtime:运行和测试的时候依赖,但是编译时期不需要。如 JDBC 驱动

  testCompile:测试编译期间依赖

  testRuntime:测试运行期间起来

使用Maven中央仓库进行依赖

repositories {
mavenCentral()
} dependencies {
testCompile group: 'junit', name: 'junit', version: '4.11'
}

简写依赖

testCompile 'junit:junit:4.12'

使用Maven的远程仓库

repositories {
maven {
url "http://repo.mycompany.com/maven2"
}
}
使用Maven本地仓库
repositories {
//使用Maven本地仓库
mavenLocal()
//使用Maven中央仓库
mavenCentral()
}
 
 
采用 Ivy 远程仓库

repositories {
ivy {
url "http://repo.mycompany.com/repo"
}
}
采用本地 Ivy 目录

repositories {
ivy {
// URL can refer to a local directory
url "../local-repo"
}
}

一个项目可以采用多个库,Gradle会按照顺序从各个库中查询依赖文件

引入本地jar

 compile files('libs/sigar.jar')

发布

uploadArchives {
repositories {
mavenDeployer {
repository(url: "file:/Users/sherry/WorkPath/maven/repository/")
}
}
}

相当于是Maven中的  mvn install

一个稍微完整的配置

group 'org.zln.learning'
version '1.0-SNAPSHOT' apply plugin: 'java'
apply plugin: 'maven' sourceCompatibility = 1.8 [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' //仓库配置
repositories {
//使用Maven本地仓库
mavenLocal()
//使用Maven中央仓库
mavenCentral()
} //依赖配置
dependencies {
compile 'org.zln.bdrisk:bdrisk-commons:1.0-SNAPSHOT'
testCompile 'junit:junit:4.12'
} //发布配置
uploadArchives {
repositories {
mavenDeployer {
repository(url: "file:/Users/sherry/WorkPath/maven/repository/")
}
}
}
  • 配置MANIFEST.MF
设置jar的main类
jar{
manifest{
attributes 'Main-Class':'com.manning.ToDoApp'
}
}
  • 改变默认结构
sourceSets{
main{
java{
//设置源代码路径
srcDirs=['src']
}
} test{
java{
//设置测试源代码路径
srcDirs=['src']
}
}
} 设置输出路径
buildDir='out'

Java构建的更多相关文章

  1. Java Build Path(Java 构建路径)

    Java构建路径用于在编译Java项目时找到依赖的类,包括以下几项: 源码包 项目相关的 jar 包及类文件 项目引用的的类库 我们可以通过使用 Java 项目属性对话框中的 Java Build P ...

  2. Gradle 笔记——Java构建入门

    Gradle是一个通用的构建工具,通过它的构建脚本你可以构建任何你想要实现的东西,不过前提是你需要先写好构建脚本的代码.而大部分的项目,它们的构建流程基本是一样的,我们不必为每一个工程都编写它的构建代 ...

  3. 闽江学院软件学院2016级JAVA构建之法-学生自学兴趣小组招募通知

    为提升我2016级学生提升JAVA软件开发学习氛围,鼓励更多同学通过自学.团队学习.在线(社区)学习等方式学习并掌握JAVA课程,尤其是鼓励同学们通过微软中国邹欣老师所倡导的"构建之法&qu ...

  4. 004_Gradle 笔记——Java构建入门

    Gradle是一个通用的构建工具,通过它的构建脚本你可以构建任何你想要实现的东西,不过前提是你需要先写好构建脚本的代码.而大部分的项目,它 们的构建流程基本是一样的,我们不必为每一个工程都编写它的构建 ...

  5. Eclipse Java 构建路径

    Eclipse Java 构建路径 设置 Java 构建路径 Java构建路径用于在编译Java项目时找到依赖的类,包括以下几项: 源码包 项目相关的 jar 包及类文件 项目引用的的类库 我们可以通 ...

  6. Eclipse Java 构建路径 ---Eclipse教程第13课

    Eclipse Java 构建路径 设置 Java 构建路径 Java构建路径用于在编译Java项目时找到依赖的类,包括以下几项: 源码包 项目相关的 jar 包及类文件 项目引用的的类库 我们可以通 ...

  7. t-io Java构建p2p网络

    Java 构建p2p网络 这篇文章是一篇关于pbft算法实现的一篇补充文章,但是在这里不会涉及pbft的算法方面,所以可以当做一篇单独的文章食用.如果想查看关于区块链或者PBFT算法的文章,可以参考一 ...

  8. 高效使用Java构建工具,Maven篇|云效工程师指北

    大家好,我是胡晓宇,目前在云效主要负责Flow流水线编排.任务调度与执行引擎相关的工作. 作为一个有多年Java开发测试工具链开发经验的CRUD专家,使用过所有主流的Java构建工具,对于如何高效使用 ...

  9. Java构建工具Ant小记(一)

    Ant简介 Ant是基于java的构建工具.理论上来说它类似与make工具,但是却克服了make的一些固有的缺陷. 传统的Make是基于操作系统shell的构建工具,虽然也可以基于工作的os对make ...

  10. Java构建工具:如何用Maven,Gradle和Ant+Ivy进行依赖管理

    原文来自:https://zeroturnaround.com/rebellabs/java-build-tools-how-dependency-management-works-with-mave ...

随机推荐

  1. 解决ArcGIS10.3属性表中文乱码问题

    问题描述:在10.3刚出为不久,就发现有时属性表会出现中文乱码的问题. 解决方法:在Cmd命令行中输入以下命令: reg add HKEY_CURRENT_USER\Software\ESRI\Des ...

  2. Python数据结构与算法--数据类型

    从数据类型开始 Python支持面向对象的编程范式,这意味着Python把数据看成解决问题的关键. 在Python中,类似其他的面向对象的编程语言, 我们定义一个类,用来描述数据是什么 (状态) 和数 ...

  3. iOS 工厂方法模式

    iOS工厂方法模式 什么是工厂方法模式? 工厂方法模式和简单工厂模式十分类似,大致结构是基本类似的.不同在于工厂方法模式对工厂类进行了进一步的抽象,将之前的一个工厂类抽象成了抽象工厂和工厂子类,抽象工 ...

  4. apache-virtual host

    NameVirtualHost xxx.xxx.xxx.xxx:80<VirtualHost xxx.xxx.xxx.xxx:80>        ServerName xxx.xxx.x ...

  5. UIView与CALayer的区别

    1.UIView相比CALayer最大区别是UIView可以响应用户事件,而CALayer不可以.UIView侧重于对显示内容的管理,CALayer侧重于对内容的绘制. 2.UIView和CALaye ...

  6. 将struts源码导入eclipse

    预制条件和spring源码导入eclipse中一样,下面直接给出导入eclipse的步骤. 步骤: 1. 下载struts相应版本的源码 http://struts.apache.org/downlo ...

  7. IOS之UI--小实例项目--添加商品和商品名

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  8. js闭包之初步理解( JavaScript closure)

    闭包一直是js中一个比较难于理解的东西,而平时用途又非常多,因此不得不对闭包进行必要的理解,现在来说说我对js闭包的理解. 要理解闭包,肯定是要先了解js的一个重要特性, 回想一下,那就是函数作用域, ...

  9. javascript简介和基本语法

    javascript简介 1.javascript是个脚本语言,需要有宿主文件,他的宿主文件是html文件. 用法:为了保险起见一般写在</html>之后<javascript   ...

  10. HDU 4045 Machine scheduling (组合数学-斯特林数,组合数学-排列组合)

    Machine scheduling Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Other ...