Skip to content

Commit ddea3bd

Browse files
committed
shadow dependencies
1 parent dbe6a0c commit ddea3bd

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

mirai-console/tools/gradle-plugin/README.md

+14-2
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,18 @@ mirai { // this: MiraiConsoleExtension
4040

4141
DSL 详见 [MiraiConsoleExtension](src/MiraiConsoleExtension.kt)
4242

43+
### 打包依赖
44+
45+
Mirai Console Gradle 在打包 JAR(`buildPlugin`) 时不会携带任何外部依赖,
46+
如果您使用了不可在 `Maven Central` 搜索到的依赖, 请使用以下配置
47+
48+
```groovy
49+
dependencies {
50+
implementation "org.example:test1:1.0.0"
51+
shadowLink "org.example:test"
52+
}
53+
```
54+
4355
### `publishPlugin`
4456

4557
配置好 Bintray 参数,使用 `./gradlew publishPlugin` 可自动发布并上传插件到 Bintray。
@@ -57,9 +69,9 @@ mirai {
5769

5870
*2021/3/21 更新:* 由于 Bintray JCenter 即将关闭,随着论坛的发展,mirai 正在策划插件中心服务。待插件中心完成后将会提供更好的插件分发平台。
5971

60-
#### 排除依赖
72+
#### 排除依赖 (Legacy)
6173

62-
如果要在打包 JAR(`buildPlugin`)时排除一些依赖,请使用如下配置:
74+
如果要在打包 JAR(`buildPluginLegacy`)时排除一些依赖,请使用如下配置:
6375

6476
```kotlin
6577
mirai {

mirai-console/tools/gradle-plugin/src/integTest/kotlin/TestBuildPlugin.kt

+8
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ package net.mamoe.mirai.console.gradle
1212
import org.junit.jupiter.api.Test
1313
import java.util.zip.ZipFile
1414
import kotlin.test.assertFalse
15+
import kotlin.test.assertNotNull
1516
import kotlin.test.assertTrue
1617

1718
class TestBuildPlugin : AbstractTest() {
@@ -23,6 +24,8 @@ class TestBuildPlugin : AbstractTest() {
2324
dependencies {
2425
api "com.zaxxer:SparseBitSet:1.2"
2526
implementation "com.google.code.gson:gson:2.8.9"
27+
api "org.slf4j:slf4j-simple:1.7.32"
28+
shadowLink "org.slf4j:slf4j-simple"
2629
}
2730
""".trimIndent()
2831
)
@@ -31,6 +34,9 @@ class TestBuildPlugin : AbstractTest() {
3134
.build()
3235
val jar = tempDir.resolve("build/libs").listFiles()!!.first { it.name.endsWith(".mirai.jar") }
3336
ZipFile(jar).use { zipFile ->
37+
38+
assertNotNull(zipFile.getEntry("org/slf4j/impl/SimpleLogger.class"))
39+
3440
val dpPrivate = zipFile.getInputStream(
3541
zipFile.getEntry("META-INF/mirai-console-plugin/dependencies-private.txt")
3642
).use { it.readBytes().decodeToString() }
@@ -40,9 +46,11 @@ class TestBuildPlugin : AbstractTest() {
4046

4147
assertTrue { dpShared.contains("com.zaxxer:SparseBitSet:1.2") }
4248
assertFalse { dpShared.contains("com.google.code.gson:gson") }
49+
assertFalse { dpShared.contains("org.slf4j:slf4j-simple") }
4350

4451
assertTrue { dpPrivate.contains("com.zaxxer:SparseBitSet:1.2") }
4552
assertTrue { dpPrivate.contains("com.google.code.gson:gson:2.8.9") }
53+
assertFalse { dpPrivate.contains("org.slf4j:slf4j-simple") }
4654
}
4755

4856
}

0 commit comments

Comments
 (0)