luc*_*uta 3 gradle gradle-shadow-plugin
我有以下任务:
task myJar(type: Jar) {
archiveName = 'myJar.jar'
includeEmptyDirs = false
destinationDir = rootProject.libsDir
dependsOn compileJava
manifest.attributes('Class-Path': '../lib/commons-lang-2.5.jar')
into '/', {
from compileJava.destinationDir
include 'com/myCompany/project/util/order/**',
'com/myCompany/project/event/**',
}
}
Run Code Online (Sandbox Code Playgroud)
我想将所有类从 com/myCompany/project/event/** 重新定位到 com/myCompany/re located/project/event/** (以便某些应用程序使用我的 jar 并具有 com.myCompany.project.event 包定义将避免任何可能的冲突)
我发现可以使用影子插件来完成,我尝试添加
relocate 'com.myCompany.project.event.', 'com.myCompany.relocated.project.event.'
Run Code Online (Sandbox Code Playgroud)
在这个任务下,但它似乎不起作用。有谁知道我应该在哪里添加这一行?
小智 6
您可以通过将以下插件添加到 build.gradle 来实现此目的
apply plugin: 'com.github.johnrengelman.shadow'
Run Code Online (Sandbox Code Playgroud)
添加此插件后,将以下代码添加到您的 build.gradle 文件中
shadowJar {
relocate 'com.myCompany.project.event', 'com.myCompany.relocated.project.event'
}
Run Code Online (Sandbox Code Playgroud)
添加此内容后,为了确保 ShadowJar 任务在构建之前运行,请在末尾添加此行
assemble.dependsOn shadowJar
Run Code Online (Sandbox Code Playgroud)
这将确保在 gradle 构建期间在 assemble/build 任务之前触发 Shadow jar 任务。
在进行 Gradle 构建时,您应该看到所有包及其相应的依赖项从“com.myCompany.project.event”重定位到“com.myCompany.re located.project.event”。
更多信息可以参考ShadowJarUserGuide
| 归档时间: |
|
| 查看次数: |
8163 次 |
| 最近记录: |