猿问
下载APP

请教一下gradle provided和compile的区别?

gradle provided和compile的区别


若吾皇
浏览 1094回答 4
4回答

烧仙草VB

gradle provided和compile的区别在于使用providedCompile的前提是apply plugin: 'war'1、Gradle compile:假如你的jar包存在代码依赖性,在编译、运行时候需要依赖代码,那就用compile例如 :compile 'org.springframework.boot:spring'2、Gradle providedCompile:假如你的jar包存在代码依赖性,但是在编译的时候才用得上,而运行时不需要,就用providedCompile例如:providedCompile 'org.springframework.boot:spring'

呼啦一阵风

Gradle compile:如果你的jar包/依赖代码 在编译的时候需要依赖,在运行的时候也需要,那么就用compile例如 :compile ‘org.springframework.boot:spring-boot-starter-websocket:1.1.6.RELEASE‘Gradle providedCompile:如果你的jar包/依赖代码 仅在编译的时候需要,但是在运行时不需要依赖,就用providedCompile例如:providedCompile ‘org.springframework.boot:spring-boot-starter-tomcat:1.1.6.RELEASE‘

qq_遁去的一_1

假设项目引用了类库 A 和类库 B ,同时,这两个类库都依赖包 C 。1. 如果 A 、B 、C 均为 Maven 依赖,可以直接使用,不会存在冲突问题。如果还是有问题,则在主项目可以去除 A 、B 中的 C 。主项目:compile 'a.group:a.artifactId:a.version' {exclude group: 'c.groupId', module: 'c.artifactId'}compile 'b.group:b.artifactId:b.version' {exclude group: 'c.groupId', module: 'c.artifactId'}compile 'c.groupId:c.artifactId:c.version'2. 如果 A 、B 均为 Maven 依赖,C 为 jar 依赖。则将 C 复制到主项目、A 、B 中,主项目 compile C ,A 、B provided C 。主项目: compile files('libs/C.jar')A 、B 项目:provided files('libs/xx.jar')3. 如果 A 、B 均为 Library Project 依赖,C 为 jar 依赖。同 2 。4. 如果 A 、B 均为 Library Project 依赖,C 为 Maven 依赖。同 2 或者 1(Maven 依赖也可以进行 provided 处理)。5. 如果 A 为 Maven 依赖或者 Library Project 依赖,B 为 jar 依赖,C 为 jar 依赖。A 项目:provided files('libs/xx.jar')B 项目和主项目,不做其他任何处理。6. 如果 A 、B 、C 均为 jar 依赖,尝试重新将 A 、B 打包,将 C 剥离出来。
打开App,查看更多内容
随时随地看视频慕课网APP
我要回答