# 如何在使用 Shadow 插件的同时重定向（Relocate）包名

以酒石酸菌的 NetMusic 模组为例，其 `build.gradle` 中有如下指令（有修改）：


```groovy
shadowJar {
    dependencies {
        include(dependency("com.googlecode.soundlibs:mp3spi:1.9.5.4"))
        include(dependency("com.googlecode.soundlibs:jlayer:1.0.1.4"))
        include(dependency("com.googlecode.soundlibs:tritonus-share:0.3.7.4"))
    }

    // 在打包时将 javazoom.jl 整体移动到 com.github.tartaricacid.netmusic.soundlibs.javazoom.jl
    relocate 'javazoom.jl', 'com.github.tartaricacid.netmusic.soundlibs.javazoom.jl'
    // 在打包时将 javazoom.spi 整体移动到 com.github.tartaricacid.netmusic.soundlibs.javazoom.spi
    relocate 'javazoom.spi', 'com.github.tartaricacid.netmusic.soundlibs.javazoom.spi'
    // 在打包时将 org.tritonus 整体移动到 com.github.tartaricacid.netmusic.soundlibs.org.tritonus
    relocate 'org.tritonus', 'com.github.tartaricacid.netmusic.soundlibs.org.tritonus'
    
    // 重定向并合并所有可能出现的 Service Provider 定义文件
    // 在前置使用 Service provider 时必须使用此命令，否则运行时会出现问题
    mergeServiceFiles()
}

// 指示 ForgeGradle 对 shadowJar 的产出进行重混淆
// ForgeGradle 会新建名为 reobfShadowJar 的任务来完成重混淆
reobf {
    shadowJar {}
}
 
// 将重混淆产物作为 shadowJar 任务最终输出
shadowJar.finalizedBy('reobfShadowJar')
 
// 指示 Gradle 每次执行 build 任务时，必须执行 shadowJar 任务
build.dependsOn shadowJar
```

---

**Documents**

- [TeaCon 2023 最终整合包下载地址](https://wiki.teacon.cn/s/2023/doc/teacon-2023-YTTGpQfDVx)
- [TeaCon 2023 展示服务器游览指南](https://wiki.teacon.cn/s/2023/doc/teacon-2023-dUHyCo34sX)
- [「言传身教」奖项评选材料](https://wiki.teacon.cn/s/2023/doc/44cm6kia5lyg6lqr5pwz44cn5aww6ag56ke6ycj5p2q5paz-OdEmjmjsSp)
- [一些教程：2023 年版](https://wiki.teacon.cn/s/2023/doc/2023-yZ8Ifv1mfY)
- [评审/试玩员须知](https://wiki.teacon.cn/s/2023/doc/6ke5a6hlivleeoqewrmomhuefpq-ByPgkTGdq0)
- [选手公示栏](https://wiki.teacon.cn/s/2023/doc/6ycj5oml5yws56s65qcp-lAfinGn66d)
- [建筑服救火记录](https://wiki.teacon.cn/s/2023/doc/5bu6562r5pyn5pwr54gr6k6w5b2v-fkxYkA7PhG)
- [龙井 FAQ](https://wiki.teacon.cn/s/2023/doc/faq-RxvgUOkabT)
- [给选手看的架构图](https://wiki.teacon.cn/s/2023/doc/57uz6ycj5oml55yl55qe5p625p6e5zu-l1w4YmTjkB)
- [展示服启动器兼容性说明](https://wiki.teacon.cn/s/2023/doc/5bgv56s65pyn5zcv5yqo5zmo5yw85a655ocn6k05pio-JGDwifXOLu)