Skip to content

Commit 4332ec9

Browse files
committed
see 07/20 log
1 parent 9be9945 commit 4332ec9

File tree

7 files changed

+24
-13
lines changed

7 files changed

+24
-13
lines changed

buildSrc/src/main/groovy/Config.groovy

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,11 @@ class Config {
3838
// 本地第一次上传插件新的版本需设置 useLocal = true, isApply = false
3939
// 本地上传成功之后 isApply = true 即可应用插件来调试,后续版本更新无需设置 isApply = false
4040
// 发布版本的话把 useLocal = false, isApply = false,发布成功后 isApply = true 即可使用远程库版本
41-
api : new DepConfig(true/*是否本地调试*/, "com.blankj:api-gradle-plugin:1.0", true/*是否使用插件*/),
41+
api : new DepConfig(false/*是否本地调试*/, "com.blankj:api-gradle-plugin:1.0", true/*是否使用插件*/),
4242
bus : new DepConfig(false/*是否本地调试*/, "com.blankj:bus-gradle-plugin:2.0", true/*是否使用插件*/),
4343
],
4444

45-
api_gradle_plugin: new DepConfig(":plugin:api-gradle-plugin", true),
45+
api_gradle_plugin: new DepConfig(":plugin:api-gradle-plugin", false),
4646
bus_gradle_plugin: new DepConfig(":plugin:bus-gradle-plugin", false),
4747

4848
feature : [

feature/mock/src/main/java/com/blankj/mock/api/SubUtilMockApi.java renamed to feature/mock/src/main/java/com/blankj/mock/subutil/SubUtilApiMock.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.blankj.mock.api;
1+
package com.blankj.mock.subutil;
22

33
import android.content.Context;
44

@@ -15,7 +15,7 @@
1515
* </pre>
1616
*/
1717
@ApiUtils.Api(isMock = true)
18-
public class SubUtilMockApi extends SubUtilApi {
18+
public class SubUtilApiMock extends SubUtilApi {
1919

2020
@Override
2121
public void startSubUtilActivity(Context context) {

feature/mock/src/main/java/com/blankj/mock/api/UtilCodeMockApi.java renamed to feature/mock/src/main/java/com/blankj/mock/utilcode/UtilCodeApiMock.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.blankj.mock.api;
1+
package com.blankj.mock.utilcode;
22

33
import android.content.Context;
44

@@ -15,7 +15,7 @@
1515
* </pre>
1616
*/
1717
@ApiUtils.Api(isMock = true)
18-
public class UtilCodeMockApi extends UtilCodeApi {
18+
public class UtilCodeApiMock extends UtilCodeApi {
1919

2020
@Override
2121
public void startUtilCodeActivity(Context context) {

plugin/api-gradle-plugin/README.md

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -243,8 +243,13 @@ public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
243243
public void visitEnd() {
244244
super.visitEnd();
245245
if (hasAnnotation) {
246-
if (!isMock) {// 如果不是 mock 的话,那么直接写入
247-
mApiImplMap.put(superClassName, new ApiInfo(className, false));
246+
if (!isMock) {// 如果不是 mock 的话
247+
ApiInfo apiInfo = mApiImplMap.get(superClassName);
248+
if (apiInfo == null) {
249+
mApiImplMap.put(superClassName, new ApiInfo(className, false));
250+
} else {// 存在一个 api 多个实现就报错
251+
errorStr = "<" + className + "> and <" + apiInfo.implApiClass + "> impl same api of <" + superClassName + ">";
252+
}
248253
} else {// mock 的话,如果 map 中已存在就不覆盖了
249254
if (!mApiImplMap.containsKey(superClassName)) {
250255
mApiImplMap.put(superClassName, new ApiInfo(className, true));

plugin/api-gradle-plugin/src/main/java/com/blankj/api/ApiClassVisitor.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ public class ApiClassVisitor extends ClassVisitor {
2525
private boolean hasAnnotation;
2626
private boolean isMock;
2727
private String mApiUtilsClass;
28+
public String errorStr;
2829

2930
public ApiClassVisitor(ClassVisitor classVisitor, Map<String, ApiInfo> apiImplMap, List<String> apiClasses, String apiUtilsClass) {
3031
super(Opcodes.ASM5, classVisitor);
@@ -62,8 +63,13 @@ public void visit(String name, Object value) {// 可获取注解的值
6263
public void visitEnd() {
6364
super.visitEnd();
6465
if (hasAnnotation) {
65-
if (!isMock) {// 如果不是 mock 的话,那么直接写入
66-
mApiImplMap.put(superClassName, new ApiInfo(className, false));
66+
if (!isMock) {// 如果不是 mock 的话
67+
ApiInfo apiInfo = mApiImplMap.get(superClassName);
68+
if (apiInfo == null) {
69+
mApiImplMap.put(superClassName, new ApiInfo(className, false));
70+
} else {// 存在一个 api 多个实现就报错
71+
errorStr = "<" + className + "> and <" + apiInfo.implApiClass + "> impl same api of <" + superClassName + ">";
72+
}
6773
} else {// mock 的话,如果 map 中已存在就不覆盖了
6874
if (!mApiImplMap.containsKey(superClassName)) {
6975
mApiImplMap.put(superClassName, new ApiInfo(className, true));

plugin/api-gradle-plugin/src/main/java/com/blankj/api/ApiScan.groovy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,9 @@ class ApiScan {
6464
ClassVisitor cv = new ApiClassVisitor(cw, apiImplMap, apiClasses, apiUtilsClass);
6565
cr.accept(cv, ClassReader.SKIP_FRAMES);
6666

67-
FileUtils.writeByteArrayToFile(file, cw.toByteArray());
67+
if (cv.errorStr != null) {
68+
throw new Exception(cv.errorStr)
69+
}
6870
}
6971
}
7072
}

plugin/bus-gradle-plugin/src/main/java/com/blankj/bus/BusScan.groovy

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,6 @@ class BusScan {
6161
ClassWriter cw = new ClassWriter(cr, 0);
6262
ClassVisitor cv = new BusClassVisitor(cw, busMap, busUtilsClass);
6363
cr.accept(cv, ClassReader.SKIP_FRAMES);
64-
65-
FileUtils.writeByteArrayToFile(file, cw.toByteArray());
6664
}
6765
}
6866
}

0 commit comments

Comments
 (0)