Skip to content

Commit 078bb45

Browse files
committed
fix(doc): #459 Supporting the referencing of classes within a JAR file in a multi-module Gradle environment.
1 parent ae536e5 commit 078bb45

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

common/common-core/src/main/java/com/iohao/game/action/skeleton/core/doc/ActionCommandDocKit.java

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,23 @@ public class ActionCommandDocKit {
4646
@Setter
4747
Function<URL, String> sourceFilePathFun = resourceUrl -> {
4848
String path = resourceUrl.getPath();
49+
boolean isMaven = path.contains("target/classes");
4950

50-
return path.contains("target/classes")
51+
// #459
52+
if (!isMaven && path.contains(".jar!")) {
53+
// jar 包内的路径,目前只处理了 gradle
54+
int indexOf = path.indexOf(":");
55+
if (indexOf != -1) {
56+
path = path.substring(indexOf + 1);
57+
}
58+
59+
// 定义正则表达式模式
60+
String regex = "/build/*/.*?\\.jar!/";
61+
// 使用正则表达式替换
62+
return path.replaceAll(regex, "/src/main/java/");
63+
}
64+
65+
return isMaven
5166
// maven
5267
? path.replace("target/classes", "src/main/java")
5368
// gradle

common/common-core/src/main/java/com/iohao/game/action/skeleton/core/doc/DocumentAnalyseKit.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import java.net.URL;
3333
import java.util.*;
3434
import java.util.concurrent.atomic.AtomicInteger;
35-
import java.util.function.Function;
3635

3736
/**
3837
* @author 渔民小镇
@@ -90,7 +89,7 @@ private List<ErrorCodeDocument> analyseActionErrorEnumDocument(Class<? extends M
9089
AnalyseJavaClassRecord analyseJavaClass(Class<?> clazz) {
9190

9291
URL resource = clazz.getResource(clazz.getSimpleName() + ".class");
93-
String srcPath = sourceFilePathFun.apply(resource).replace("class", "java");
92+
String srcPath = ActionCommandDocKit.sourceFilePathFun.apply(resource).replace("class", "java");
9493

9594
JavaProjectBuilder javaProjectBuilder = new JavaProjectBuilder();
9695

@@ -114,16 +113,6 @@ record AnalyseJavaClassRecord(boolean exists, JavaClass javaClass) {
114113

115114
}
116115

117-
private final Function<URL, String> sourceFilePathFun = resourceUrl -> {
118-
String path = resourceUrl.getPath();
119-
120-
return path.contains("target/classes")
121-
// maven
122-
? path.replace("target/classes", "src/main/java")
123-
// gradle
124-
: path.replace("build/classes", "src/main/java");
125-
};
126-
127116
private final AtomicInteger gameCodeOrdinal = new AtomicInteger(0);
128117

129118
private List<ErrorCodeDocument> analyseErrorCodeDocument(JavaClass javaClass) {

0 commit comments

Comments
 (0)