Java构建
大部分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"
}
}
repositories {
//使用Maven本地仓库
mavenLocal()
//使用Maven中央仓库
mavenCentral()
}
repositories {
ivy {
url "http://repo.mycompany.com/repo"
}
}
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构建的更多相关文章
- Java Build Path(Java 构建路径)
Java构建路径用于在编译Java项目时找到依赖的类,包括以下几项: 源码包 项目相关的 jar 包及类文件 项目引用的的类库 我们可以通过使用 Java 项目属性对话框中的 Java Build P ...
- Gradle 笔记——Java构建入门
Gradle是一个通用的构建工具,通过它的构建脚本你可以构建任何你想要实现的东西,不过前提是你需要先写好构建脚本的代码.而大部分的项目,它们的构建流程基本是一样的,我们不必为每一个工程都编写它的构建代 ...
- 闽江学院软件学院2016级JAVA构建之法-学生自学兴趣小组招募通知
为提升我2016级学生提升JAVA软件开发学习氛围,鼓励更多同学通过自学.团队学习.在线(社区)学习等方式学习并掌握JAVA课程,尤其是鼓励同学们通过微软中国邹欣老师所倡导的"构建之法&qu ...
- 004_Gradle 笔记——Java构建入门
Gradle是一个通用的构建工具,通过它的构建脚本你可以构建任何你想要实现的东西,不过前提是你需要先写好构建脚本的代码.而大部分的项目,它 们的构建流程基本是一样的,我们不必为每一个工程都编写它的构建 ...
- Eclipse Java 构建路径
Eclipse Java 构建路径 设置 Java 构建路径 Java构建路径用于在编译Java项目时找到依赖的类,包括以下几项: 源码包 项目相关的 jar 包及类文件 项目引用的的类库 我们可以通 ...
- Eclipse Java 构建路径 ---Eclipse教程第13课
Eclipse Java 构建路径 设置 Java 构建路径 Java构建路径用于在编译Java项目时找到依赖的类,包括以下几项: 源码包 项目相关的 jar 包及类文件 项目引用的的类库 我们可以通 ...
- t-io Java构建p2p网络
Java 构建p2p网络 这篇文章是一篇关于pbft算法实现的一篇补充文章,但是在这里不会涉及pbft的算法方面,所以可以当做一篇单独的文章食用.如果想查看关于区块链或者PBFT算法的文章,可以参考一 ...
- 高效使用Java构建工具,Maven篇|云效工程师指北
大家好,我是胡晓宇,目前在云效主要负责Flow流水线编排.任务调度与执行引擎相关的工作. 作为一个有多年Java开发测试工具链开发经验的CRUD专家,使用过所有主流的Java构建工具,对于如何高效使用 ...
- Java构建工具Ant小记(一)
Ant简介 Ant是基于java的构建工具.理论上来说它类似与make工具,但是却克服了make的一些固有的缺陷. 传统的Make是基于操作系统shell的构建工具,虽然也可以基于工作的os对make ...
- Java构建工具:如何用Maven,Gradle和Ant+Ivy进行依赖管理
原文来自:https://zeroturnaround.com/rebellabs/java-build-tools-how-dependency-management-works-with-mave ...
随机推荐
- .NET破解之百分百营销软件系列
今天在52中看到了一个邮件批量发送工具,感觉不怎么好用,百度一下,找到了百分百系统,虽然也不怎么好用,但还是忍不住P它. 官网:http://www.100qunfa.com/ 百分百不加群提取群成员 ...
- 无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”。此操作失败的原因是对 IID 为“{000208D5 -0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错。 (异常来 自 HRESULT:
无法将类型为“Excel.ApplicationClass”的 COM 对象强制转换为接口类 型“Excel._Application”.此操作失败的原因是对 IID 为“{000208D5 -000 ...
- 卸载WIN10自带功能
要卸载OneNote,在里面输入 Get-AppxPackage *OneNote* | Remove-AppxPackage 可以复制,回车执行 4 要卸载3D,输入 Get-AppxPackage ...
- (转)解决ScrollView嵌套ListView或者GridView导致只显示一行的方法
即动态获取ListView和GridView的高度 一.对于ListView ListView listview= new ListView(this); setListViewHeightBased ...
- Python数据结构与算法--算法分析
在计算机科学中,算法分析(Analysis of algorithm)是分析执行一个给定算法需要消耗的计算资源数量(例如计算时间,存储器使用等)的过程.算法的效率或复杂度在理论上表示为一个函数.其定义 ...
- 【读书笔记】iOS-NSData
Cocoa为我们提供了NSData类,该类包装了大量字节,你可以获得数据的长度和指向字节起始位置的指针,因为NSData是一个对象,适用于常规的内存管理行为.因此,如果将数据块传递给一个函数或方法,可 ...
- JAVA-使用commos-fileupload实现文件上传与下载
一文件的上传 实体类 在CODE上查看代码片派生到我的代码片 import java.sql.Timestamp; /** * * @Decription 文件上传实体类 * @author 刘楠 * ...
- NSTimer scheduledTimerWithTimeInterval与timerWithTimeInterval、initWithFireDate的区别
英文原文是这样的: A timer object can be registered in only one run loop at a time, although it can be added ...
- Android 之 json数据的解析(jsonReader)
json数据的解析相对而言,还是比较容易的,实现的代码也十分简单.这里用的是jsonReade方法来进行json数据解析. 1.在解析之前,大家需要知道什么是json数据. json数据存储的对象是无 ...
- UVa 104 - Arbitrage(Floyd动态规划)
题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&pa ...