fix: ci 2
This commit is contained in:
parent
b43350c5f0
commit
765ffc3cf7
@ -47,7 +47,7 @@ repositories {
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation("io.papermc.paper:paper-api:26.2.build.87-stable")
|
implementation("io.papermc.paper:paper-api:26.2.build.87-stable")
|
||||||
implementation("net.sf.jopt-simple:jopt-simple:6.0-alpha-3")
|
implementation("net.sf.jopt-simple:jopt-simple:6.0-alpha-3")
|
||||||
implementation("io.github.astonbitecode:j4rs:0.25.0")
|
implementation("io.github.astonbitecode:j4rs:0.25.2")
|
||||||
implementation("org.apache.maven:maven-resolver-provider:3.9.6")
|
implementation("org.apache.maven:maven-resolver-provider:3.9.6")
|
||||||
implementation("org.apache.maven.resolver:maven-resolver-impl:1.9.18")
|
implementation("org.apache.maven.resolver:maven-resolver-impl:1.9.18")
|
||||||
implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
|
implementation("org.apache.maven.resolver:maven-resolver-connector-basic:1.9.18")
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
use std::{fs, path::PathBuf};
|
use std::{fs, path::PathBuf};
|
||||||
|
|
||||||
use j4rs::{JvmBuilder, LocalJarArtifact, MavenArtifactRepo, MavenSettings};
|
use j4rs::{JvmBuilder, MavenArtifactRepo, MavenSettings};
|
||||||
|
|
||||||
pub fn setup_java(base: PathBuf) {
|
pub fn setup_java(base: PathBuf) {
|
||||||
let resources = base.join("resources");
|
let resources = base.join("resources");
|
||||||
@ -16,16 +16,37 @@ pub fn setup_java(base: PathBuf) {
|
|||||||
.join("libs")
|
.join("libs")
|
||||||
.join("patchbukkit.jar");
|
.join("patchbukkit.jar");
|
||||||
|
|
||||||
let jvm = JvmBuilder::new()
|
let jassets = resources.join("jassets");
|
||||||
|
let mut classpath_entries = Vec::new();
|
||||||
|
|
||||||
|
if let Ok(entries) = fs::read_dir(&jassets) {
|
||||||
|
for entry in entries.flatten() {
|
||||||
|
let path = entry.path();
|
||||||
|
if let Some(filename) = path.file_name().and_then(|n| n.to_str()) {
|
||||||
|
if filename.starts_with("j4rs") && filename.ends_with(".jar") {
|
||||||
|
classpath_entries.push(j4rs::ClasspathEntry::new(&path));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut jvm_builder = JvmBuilder::new();
|
||||||
|
let mut jvm_builder = jvm_builder
|
||||||
.with_maven_settings(MavenSettings::new(vec![MavenArtifactRepo::from(
|
.with_maven_settings(MavenSettings::new(vec![MavenArtifactRepo::from(
|
||||||
"papermc::https://repo.papermc.io/repository/maven-public/",
|
"papermc::https://repo.papermc.io/repository/maven-public/",
|
||||||
)]))
|
)]))
|
||||||
.skip_setting_native_lib()
|
.skip_setting_native_lib()
|
||||||
.with_base_path(resources)
|
.with_base_path(&resources)
|
||||||
.java_opts(vec![
|
.java_opts(vec![
|
||||||
j4rs::JavaOpt::new("--enable-native-access=ALL-UNNAMED"),
|
j4rs::JavaOpt::new("--enable-native-access=ALL-UNNAMED"),
|
||||||
j4rs::JavaOpt::new("-Dcom.google.protobuf.useUnsafe=false"),
|
j4rs::JavaOpt::new("-Dcom.google.protobuf.useUnsafe=false"),
|
||||||
])
|
]);
|
||||||
|
|
||||||
|
for entry in classpath_entries {
|
||||||
|
jvm_builder = jvm_builder.classpath_entry(entry);
|
||||||
|
}
|
||||||
|
|
||||||
|
let _jvm = jvm_builder
|
||||||
.build()
|
.build()
|
||||||
.map_err(|err| format!("jvm failed to init: {err:?}"))
|
.map_err(|err| format!("jvm failed to init: {err:?}"))
|
||||||
.unwrap();
|
.unwrap();
|
||||||
@ -36,7 +57,10 @@ pub fn setup_java(base: PathBuf) {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
jvm.deploy_artifact(&LocalJarArtifact::new(&patchbukkit_jar.to_string_lossy()))
|
fs::create_dir_all(&jassets).unwrap();
|
||||||
|
let dest_jar = jassets.join("patchbukkit.jar");
|
||||||
|
fs::copy(&patchbukkit_jar, &dest_jar)
|
||||||
|
.map_err(|err| format!("Failed to copy patchbukkit.jar to jassets: {err:?}"))
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let cdylib = std::env::var("CARGO_CDYLIB_FILE_J4RS").unwrap();
|
let cdylib = std::env::var("CARGO_CDYLIB_FILE_J4RS").unwrap();
|
||||||
|
|||||||
@ -209,13 +209,31 @@ impl JvmWorker {
|
|||||||
fn initialize_jvm(&mut self, j4rs_path: &PathBuf) -> anyhow::Result<()> {
|
fn initialize_jvm(&mut self, j4rs_path: &PathBuf) -> anyhow::Result<()> {
|
||||||
tracing::info!("Initializing JVM with path: {j4rs_path:?}");
|
tracing::info!("Initializing JVM with path: {j4rs_path:?}");
|
||||||
|
|
||||||
let jvm = JvmBuilder::new()
|
let jassets = j4rs_path.join("jassets");
|
||||||
.with_base_path(j4rs_path)
|
let mut classpath_entries = Vec::new();
|
||||||
.java_opts(vec![
|
|
||||||
|
if let Ok(entries) = std::fs::read_dir(&jassets) {
|
||||||
|
for entry in entries.flatten() {
|
||||||
|
let path = entry.path();
|
||||||
|
if let Some(filename) = path.file_name().and_then(|n| n.to_str()) {
|
||||||
|
if filename.starts_with("j4rs") && filename.ends_with(".jar") {
|
||||||
|
classpath_entries.push(j4rs::ClasspathEntry::new(&path));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let mut jvm_builder = JvmBuilder::new();
|
||||||
|
let mut jvm_builder = jvm_builder.with_base_path(j4rs_path).java_opts(vec![
|
||||||
j4rs::JavaOpt::new("--enable-native-access=ALL-UNNAMED"),
|
j4rs::JavaOpt::new("--enable-native-access=ALL-UNNAMED"),
|
||||||
j4rs::JavaOpt::new("-Dcom.google.protobuf.useUnsafe=false"),
|
j4rs::JavaOpt::new("-Dcom.google.protobuf.useUnsafe=false"),
|
||||||
])
|
]);
|
||||||
.build()?;
|
|
||||||
|
for entry in classpath_entries {
|
||||||
|
jvm_builder = jvm_builder.classpath_entry(entry);
|
||||||
|
}
|
||||||
|
|
||||||
|
let jvm = jvm_builder.build()?;
|
||||||
|
|
||||||
initialize_callbacks(&jvm)?;
|
initialize_callbacks(&jvm)?;
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user