【发布时间】:2020-08-29 23:05:52
【问题描述】:
我添加了this artifact,这是对我的 gradle 项目依赖项的一场战争。 我需要扩展一些类,并从中使用修改后的 servlet 上下文。
我期待战争按原样导入,然后我将使用 gradle 任务来操作以将 jar 包含到依赖项中,复制静态资源以更正类路径等。 但是 gradle 实际上添加了一堆 jars 来依赖。
我不确定 gradle 是否递归地扫描了 jar 和 pom 的所有路径,或者可能只是战争中 WEB-INF/classes 文件夹下的 jar。 我可以假设 poms 存储库可能不是stated here。
我正确的是假设没有导入泄气战争中 WEB-INF/lib 文件夹中的罐子?很难说,因为我的项目和所讨论的战争之间有很多共享的依赖关系
如果我需要按照顶部所述进行扩展和修改,那么在 maven repo/jcenter 中声明对战争的依赖的最佳方式是什么?
更新:
我现在正在尝试使用下面的答案和这个解决方案https://discuss.gradle.org/t/how-to-add-an-artifactory-war-as-a-gradle-dependency/19804/2 , 这仅在使用 buildDir 之外的复制 jar 移动目录后才有效 我的 build.gradle
configurations {
warOnly
}
dependencies {
// not working implementation fileTree('$buildDir/explodedWar/WEB-INF/classes')
implementation fileTree('anotherDir/explodedWar/WEB-INF/classes')
// implementation fileTree('$buildDir/explodedWar/WEB-INF/lib')
implementation fileTree('anotherDir/explodedWar/WEB-INF/lib')
warOnly 'ca.uhn.hapi.fhir:hapi-fhir-jpaserver-starter:4.2.0@war'
}
tasks.register("explodeWar",Copy) {
from zipTree(configurations.warOnly.singleFile)
// into "${buildDir}/explodedWar"
into "anotherDir/explodedWar"
}
compileJava {
dependsOn explodeWar
}
【问题讨论】:
标签: java maven gradle dependencies