Liferay7 BPM门户开发之43: Gradle依赖管理
进入liferay v7.0,官方推荐使用Gradle进行依赖管理和发布,所以必须知道Gradle的用法,网上资料很多,不赘述
只写依赖管理的分类
一般用外部仓库依赖,也可以用本地文件依赖(依赖本地jar包),如:
本地文件依赖
dependencies { //单文件依赖 compile files('libs/activiti-engine-5.21.0.jar')
//某文件夹的全部依赖 compile fileTree(dir: 'libs', include: '*.jar')
其中libs目录,与build.gradle目录在同一个文件夹下。
Gradle外部仓库依赖一般有两种写法:
- 写法1:compile
- 写法2:compile group XXX
实际上都是一样的。
比如activiti的依赖:
compile group: 'org.activiti', name: 'activiti-engine', version: '5.21.0'
如果熟悉Maven,会很熟悉,只是Maven用的是XML格式:
<!-- https://mvnrepository.com/artifact/org.activiti/activiti-engine --> <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-engine</artifactId> <version>5.21.0</version> </dependency>
一堆Gradle依赖写在一起:
compile group: 'joda-time', name: 'joda-time', version: '2.6' compile group: 'org.activiti', name: 'activiti-bpmn-converter', version: '5.21.0' compile group: 'org.activiti', name: 'activiti-process-validation', version: '5.21.0' compile group: 'org.activiti', name: 'activiti-image-generator', version: '5.21.0' compile group: 'org.apache.commons', name: 'commons-email', version: '1.4' compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.3.2' compile group: 'org.mybatis', name: 'mybatis', version: '3.3.0' compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.6' compile group: 'org.slf4j', name: 'jcl-over-slf4j', version: '1.7.6' compile group: 'org.springframework', name: 'spring-beans', version: '4.1.5.RELEASE' compile group: 'org.activiti', name: 'activiti-engine', version: '5.21.0'
Gradle仓库有4种使用方法,请按情况转换
1、使用maven中央仓库: repositories { mavenCentral() } 2、使用私有aven远程仓库: repositories { maven { url "http://repo.Yourcompany.com/public" } } 3、远程Ivy仓库: repositories { ivy { url "http://repo.Yourcompany.com/public" } } 4、本地Ivy仓库: repositories { ivy { url "../local-repo" } }
可以使用多个仓库,Gradle会按顺序依次寻找,找到后会停止寻找,一般把最快的URL放最前边,最后放本地Ivy仓库。
常用的仓库:
http://central.maven.org/maven2/
http://repo1.maven.org/maven2
http://repo2.maven.org/maven2/
发布你自己的JAR包
发布artifacts到一个Maven私有仓库:
apply plugin: 'maven' uploadArchives { repositories { mavenDeployer { repository(url: "file://localhost/tmp/myRepo/") } } }
发布到远程公共仓库:
uploadArchives { repositories { ivy { credentials { username "username" password "pw" } url "http://repo.mycompany.com" } } }
关于作者:
王昕(QQ:475660)
在广州工作生活30余年。十多年开发经验,在Java、即时通讯、NoSQL、BPM、大数据等领域较有经验。
目前维护的开源产品:https://gitee.com/475660
目前维护的开源产品:https://gitee.com/475660