Java Gradle控件可从依赖项build.Gradle传递
我不确定这是否可行,但想得到一些关于这个问题的意见/解决方案 我正在创建一个新的依赖项Java Gradle控件可从依赖项build.Gradle传递,java,spring-boot,gradle,spring-boot-gradle-plugin,Java,Spring Boot,Gradle,Spring Boot Gradle Plugin,我不确定这是否可行,但想得到一些关于这个问题的意见/解决方案 我正在创建一个新的依赖项com。示例:app dep:1.0.1将在com中使用。示例:app作为编译依赖项 app-dep有一个依赖项io.undertow:undertow-core:2.0.1.Final这是我不想在com中使用的。示例:app项目,因为我从com中排除了类文件。示例:app-dep与undertow相关,因为类需要开发时间,但在生产中不需要 当我在com中添加com.example:app dep:1.0.1时
com。示例:app dep:1.0.1
将在com中使用。示例:app
作为编译
依赖项
app-dep
有一个依赖项io.undertow:undertow-core:2.0.1.Final
这是我不想在com中使用的。示例:app
项目,因为我从com中排除了类文件。示例:app-dep
与undertow
相关,因为类需要开发时间,但在生产中不需要
当我在com中添加com.example:app dep:1.0.1
时。example:app
我想排除io.undertow:undertow core:2.0.1.Final
但是我想从com控制它。例如:app dep:1.0.1
将来可能会启用。
我试过的一些渐变
尝试1
app dep-build.gradle
制作应用程序build.gradle
使用spring引导渐变插件
bootRepackage
buildscript {
dependencies {
classpath "org.springframework.boot:spring-boot-gradle-plugin:1.5.12.RELEASE"
}
}
dependencies {
compile 'com.example:app-dep:1.0.1'
}
输出:仍在拉动和添加io。下拖:下拖核心:2.0.1。最终
在生产spring boot jar中
尝试2次
使用配置文件
dependencies {
compile 'org.apache.commons:commons-lang3:3.4'
testCompile 'org.mockito:mockito-core:3.1.0'
testCompile 'org.powermock:powermock-module-junit4:1.6.6'
testCompile 'org.powermock:powermock-api-mockito:1.6.6'
if(isDev) {
implementation 'io.undertow:undertow-core:2.0.1.Final'
}
}
输出:类内部app dep
抛出编译错误,当我执行/gradlew构建时会说以下内容
Undertow服务器=Undertow.builder().addHttpListener(8081,
“localhost”).setHandler(routingHandler.build();
^
符号:可变底拖
位置:class ExampleServer
26个错误
我能做但我不想要的
生产应用程序build.gradle
因为我想从app-dep
控制这一点,到目前为止,我理解您希望在生产项目中动态排除,而不是使用exclude
。您能澄清一下您的意思吗?依赖关系app-dep
在“开发时”是必需的-这是否意味着您需要在dev box上运行,而不是在生产环境中运行-或者依赖项是“仅编译”?在第一种情况下,可以使用概要文件-在第二种情况下,compileOnly应该足够了(请参见)@JonathanJohx correct好的,那么通常当您有一个具有多个依赖项的大型项目,这些依赖项应该被排除或包括在prod
和dev
中时,您应该使用概要文件
作为依赖项,如果它是prod
你可以添加/排除,也许这个答案可以帮助你。@JonathanJohx我试过了,运气不好,在问题TRY 2
dependencies {
compile 'org.apache.commons:commons-lang3:3.4'
testCompile 'org.mockito:mockito-core:3.1.0'
testCompile 'org.powermock:powermock-module-junit4:1.6.6'
testCompile 'org.powermock:powermock-api-mockito:1.6.6'
if(isDev) {
implementation 'io.undertow:undertow-core:2.0.1.Final'
}
}
dependencies {
compile('com.example:app-dep:1.0.1') {
exclude(module: 'com.example.app-dep')
}
}