从今年开始,开始换用gradle 了,个人感觉还好,配置不像maven,一堆xml 文件,一个jar 一行字符,内置的task 和很多。自定义task 也挺简单,比ant简单一些。
简单配置文件示例:
group 'sdfe'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25'
// .apache.mina/mina-filter-compression
compile group: 'org.apache.mina', name: 'mina-filter-compression', version: '2.0.17'
// ty/netty-all
compile group: 'ioty', name: 'netty-all', version: '5.0.0.Alpha2'
// .apache.mina/mina-core
compile group: 'org.apache.mina', name: 'mina-core', version: '3.0.0-M2'
compile group: 'org.apache.kafka', name: 'kafka-clients', version: '1.0.0'
testCompile group: 'junit', name: 'junit', version: '4.12'
}
比Maven的配置文件简单了很多。
今天再来补充下gradle 的相关命令和用法,以内置的task 为主。
先来看打jar包
group 'com.wanba'
version '1.0-SNAPSHOT'
apply plugin: 'java'
sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'
}
jar {
manifest {
attributes 'Main-Class': 'Protest'
}
}
指定 main 方法的可运行 jar 包。
打war包
project('') {
apply plugin: 'war'
dependencies {
}
war {
/*from {
llect { it.isDirectory() ? it : zipTree(it) }
}*/
baseName = ''
}
processResources {
from('src/main/java') {
include '**/*'
}
}
//baseName = ''
}
当需要将项目打包成可执行的jar时,如果在项目中引入了其它的jar包,需要在adle中添加这样语句:
jar { from {llect {it.isDirectory() ? it : zipTree(it)}}manifest {attributes 'Main-Class': HelloWorld'}
这样不止我们的项目代码会进入xxx.jar中,引入的jar包的相关代码也会进入xxx.jar,避免出现java.lang.NoClassDefFoundError。
转载于:.html
本文发布于:2024-01-27 20:20:39,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063580392426.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |