Skip to content

Commit 2ae7cda

Browse files
committed
使用更先进的方法加载maven依赖
1 parent ae2755f commit 2ae7cda

File tree

13 files changed

+569
-303
lines changed

13 files changed

+569
-303
lines changed

MiraiMC-Base/pom.xml

-48
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,6 @@
1616
<maven.compiler.target>8</maven.compiler.target>
1717
<kotlin.version>1.9.24</kotlin.version>
1818
<kotlin.compiler.incremental>true</kotlin.compiler.incremental>
19-
<aetherVersion>1.0.0.v20140518</aetherVersion>
20-
<mavenVersion>3.1.0</mavenVersion>
21-
<wagonVersion>1.0</wagonVersion>
2219
</properties>
2320

2421
<dependencies>
@@ -57,51 +54,6 @@
5754
<version>${kotlin.version}</version>
5855
<scope>provided</scope>
5956
</dependency>
60-
<dependency>
61-
<groupId>org.eclipse.aether</groupId>
62-
<artifactId>aether-api</artifactId>
63-
<version>${aetherVersion}</version>
64-
</dependency>
65-
<dependency>
66-
<groupId>org.eclipse.aether</groupId>
67-
<artifactId>aether-util</artifactId>
68-
<version>${aetherVersion}</version>
69-
</dependency>
70-
<dependency>
71-
<groupId>org.eclipse.aether</groupId>
72-
<artifactId>aether-impl</artifactId>
73-
<version>${aetherVersion}</version>
74-
</dependency>
75-
<dependency>
76-
<groupId>org.eclipse.aether</groupId>
77-
<artifactId>aether-connector-basic</artifactId>
78-
<version>${aetherVersion}</version>
79-
</dependency>
80-
<dependency>
81-
<groupId>org.eclipse.aether</groupId>
82-
<artifactId>aether-transport-file</artifactId>
83-
<version>${aetherVersion}</version>
84-
</dependency>
85-
<dependency>
86-
<groupId>org.eclipse.aether</groupId>
87-
<artifactId>aether-transport-http</artifactId>
88-
<version>${aetherVersion}</version>
89-
</dependency>
90-
<dependency>
91-
<groupId>org.eclipse.aether</groupId>
92-
<artifactId>aether-transport-wagon</artifactId>
93-
<version>${aetherVersion}</version>
94-
</dependency>
95-
<dependency>
96-
<groupId>org.apache.maven</groupId>
97-
<artifactId>maven-aether-provider</artifactId>
98-
<version>${mavenVersion}</version>
99-
</dependency>
100-
<dependency>
101-
<groupId>org.apache.maven.wagon</groupId>
102-
<artifactId>wagon-ssh</artifactId>
103-
<version>${wagonVersion}</version>
104-
</dependency>
10557
</dependencies>
10658

10759
<build>

MiraiMC-Base/src/main/java/me/dreamvoid/miraimc/api/MiraiMC.java

-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package me.dreamvoid.miraimc.api;
22

3-
import me.dreamvoid.miraimc.LifeCycle;
43
import me.dreamvoid.miraimc.MiraiMCConfig;
5-
import me.dreamvoid.miraimc.Platform;
64
import me.dreamvoid.miraimc.internal.database.DatabaseHandler;
75

86
import javax.annotation.Nullable;

MiraiMC-Base/src/main/java/me/dreamvoid/miraimc/commands/MiraiCommand.java

+6-16
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,16 @@
11
package me.dreamvoid.miraimc.commands;
22

33
import me.dreamvoid.miraimc.IMiraiAutoLogin;
4-
import me.dreamvoid.miraimc.MiraiMCConfig;
54
import me.dreamvoid.miraimc.LifeCycle;
5+
import me.dreamvoid.miraimc.MiraiMCConfig;
66
import me.dreamvoid.miraimc.api.MiraiBot;
77
import me.dreamvoid.miraimc.httpapi.MiraiHttpAPI;
88
import me.dreamvoid.miraimc.httpapi.exception.AbnormalStatusException;
9-
import me.dreamvoid.miraimc.internal.Utils;
109
import me.dreamvoid.miraimc.internal.MiraiLoader;
10+
import me.dreamvoid.miraimc.internal.Utils;
1111
import net.mamoe.mirai.Bot;
1212
import net.mamoe.mirai.utils.BotConfiguration;
13-
import org.xml.sax.SAXException;
1413

15-
import javax.xml.parsers.ParserConfigurationException;
1614
import java.io.File;
1715
import java.io.IOException;
1816
import java.util.Arrays;
@@ -305,11 +303,7 @@ public boolean onCommand(ICommandSender sender, String[] args) {
305303
}
306304
switch (args[1].toLowerCase()){
307305
case "load":{
308-
try {
309-
MiraiLoader.loadMiraiCore();
310-
} catch (IOException | SAXException | ParserConfigurationException e) {
311-
throw new RuntimeException(e);
312-
}
306+
MiraiLoader.loadMiraiCore();
313307
break;
314308
}
315309
case "unload":{
@@ -330,13 +324,9 @@ public boolean onCommand(ICommandSender sender, String[] args) {
330324
break;
331325
}
332326
case "change":{
333-
try {
334-
//JarLoader.unloadJar();
335-
MiraiLoader.loadMiraiCore(args[2]);
336-
sender.sendMessage("Success");
337-
} catch (IOException | ParserConfigurationException | SAXException e) {
338-
throw new RuntimeException(e);
339-
}
327+
//JarLoader.unloadJar();
328+
MiraiLoader.loadMiraiCore(args[2]);
329+
sender.sendMessage("Success");
340330
break;
341331
}
342332
}

MiraiMC-Base/src/main/java/me/dreamvoid/miraimc/internal/MiraiLoader.java

+16-11
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,17 @@
11
package me.dreamvoid.miraimc.internal;
22

3-
import me.dreamvoid.miraimc.MiraiMCConfig;
43
import me.dreamvoid.miraimc.LifeCycle;
4+
import me.dreamvoid.miraimc.MiraiMCConfig;
55
import me.dreamvoid.miraimc.internal.webapi.Info;
66
import me.dreamvoid.miraimc.internal.webapi.Version;
7-
import org.eclipse.aether.artifact.DefaultArtifact;
8-
import org.eclipse.aether.graph.Dependency;
9-
import org.eclipse.aether.repository.RemoteRepository;
10-
import org.xml.sax.SAXException;
117

12-
import javax.xml.parsers.ParserConfigurationException;
138
import java.io.IOException;
149

1510
public class MiraiLoader {
16-
private static final RemoteRepository mavenCentral = new RemoteRepository.Builder("central","default", MiraiMCConfig.General.MavenRepoUrl).build();
1711
/**
1812
* 加载最新版Mirai Core
1913
*/
20-
public static void loadMiraiCore() throws RuntimeException, IOException, ParserConfigurationException, SAXException {
14+
public static void loadMiraiCore() {
2115
loadMiraiCore("latest");
2216
}
2317

@@ -54,7 +48,7 @@ public static String getStableVersion(String PluginVersion) {
5448

5549
return mirai;
5650
} catch (IOException e){
57-
Utils.getLogger().warning("Unable to get mirai stable version from remote server, try to use latest. Reason: " + e);
51+
Utils.getLogger().warning("Failed to get stable version, fallback to latest. Reason: " + e);
5852
return "latest";
5953
}
6054
}
@@ -64,7 +58,18 @@ public static String getStableVersion(String PluginVersion) {
6458
* 加载指定版本的Mirai Core
6559
* @param version 版本
6660
*/
67-
public static void loadMiraiCore(String version) throws RuntimeException, IOException, ParserConfigurationException, SAXException {
68-
LifeCycle.getPlatform().getLibraryLoader().loadLibraryMaven(mavenCentral, new Dependency(new DefaultArtifact("net.mamoe:mirai-core-all:" + (version.equalsIgnoreCase("latest") ? LifeCycle.getPlatform().getLibraryLoader().getLibraryVersion(mavenCentral, "net.mamoe", "mirai-core-all") : version)), null));
61+
public static void loadMiraiCore(String version) {
62+
try {
63+
LifeCycle.getPlatform().getLibraryLoader().loadLibraryMaven(
64+
"net.mamoe",
65+
"mirai-core-all",
66+
(version.equalsIgnoreCase("latest") ? LifeCycle.getPlatform().getLibraryLoader().getLibraryVersion("net.mamoe", "mirai-core-all", MiraiMCConfig.General.MavenRepoUrl) : version),
67+
MiraiMCConfig.General.MavenRepoUrl,
68+
"-all.jar", // mirai 特性
69+
Utils.getMiraiDir().toPath().resolve("libs")
70+
);
71+
} catch (Exception e) {
72+
throw new RuntimeException(e);
73+
}
6974
}
7075
}

0 commit comments

Comments
 (0)