У меня есть типичная структура проекта архитектуры, то есть модуль и модуль и neoforge , оба в зависимости от первого. Я хотел сделать тесты как для ткани, так и для Neoforge в общем модуле, но это не сработало, потому что у меня нет платформы. Поэтому моей следующей лучшей идеей было написать тесты общего под testfixtures и импортировать их в двух других подпроектах, основанных на этом ответе. Что почти работает, но в Testfixtures код Minecraft вообще не распознается (не имела этой проблемы в основном или тесте). Как я могу его распознать?plugins {
id 'dev.architectury.loom' version '1.11-SNAPSHOT' apply false
id 'architectury-plugin' version '3.4-SNAPSHOT'
id 'com.github.johnrengelman.shadow' version '8.1.1' apply false
}
architectury {
minecraft = project.minecraft_version
}
allprojects {
group = rootProject.maven_group
version = rootProject.mod_version
}
subprojects {
apply plugin: 'dev.architectury.loom'
apply plugin: 'architectury-plugin'
apply plugin: 'maven-publish'
base {
// Set up a suffixed format for the mod jar names, e.g. `example-fabric`.
archivesName = "$rootProject.archives_name-$project.name"
}
repositories {
// Add repositories to retrieve artifacts from in here.
// You should only use this when depending on other mods because
// Loom adds the essential maven repositories to download Minecraft and libraries from automatically.
// See https://docs.gradle.org/current/usergui ... ories.html
// for more information about repositories.
}
test {
useJUnitPlatform()
}
dependencies {
minecraft "net.minecraft:minecraft:$rootProject.minecraft_version"
mappings loom.officialMojangMappings()
}
java {
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
// if it is present.
// If you remove this line, sources will not be generated.
withSourcesJar()
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}
tasks.withType(JavaCompile).configureEach {
it.options.release = 21
}
// Configure Maven publishing.
publishing {
publications {
mavenJava(MavenPublication) {
artifactId = base.archivesName.get()
from components.java
}
}
// See https://docs.gradle.org/current/usergui ... maven.html for information on how to set up publishing.
repositories {
// Add repositories to publish to here.
// Notice: This block does NOT have the same function as the block in the top level.
// The repositories here will be used for publishing your artifact, not for
// retrieving dependencies.
}
}
}
< /code>
Это моя обычная града: < /p>
plugins {
id 'java-library'
id 'java-test-fixtures'
}
architectury {
common rootProject.enabled_platforms.split(',')
}
dependencies {
// We depend on Fabric Loader here to use the Fabric @Environment annotations,
// which get remapped to the correct annotations on each platform.
// Do NOT use other classes from Fabric Loader.
modImplementation "net.fabricmc:fabric-loader:$rootProject.fabric_loader_version"
modImplementation "dev.architectury:architectury:$rootProject.architectury_api_version"
testFixturesImplementation "dev.architectury:architectury:$rootProject.architectury_api_version"
testFixturesImplementation "org.junit.jupiter:junit-jupiter-api:5.8.1"
}
sourceSets {
main {
resources {
srcDirs("src/main/generated")
}
}
}
< /code>
Это моя ткань Gradle: < /p>
plugins {
id 'com.github.johnrengelman.shadow'
id 'java-library'
}
architectury {
platformSetupLoomIde()
fabric()
}
configurations {
common {
canBeResolved = true
canBeConsumed = false
}
compileClasspath.extendsFrom common
runtimeClasspath.extendsFrom common
developmentFabric.extendsFrom common
// Files in this configuration will be bundled into your mod using the Shadow plugin.
// Don't use the `shadow` configuration from the plugin itself as it's meant for excluding files.
shadowBundle {
canBeResolved = true
canBeConsumed = false
}
}
dependencies {
modImplementation "net.fabricmc:fabric-loader:$rootProject.fabric_loader_version"
modImplementation "net.fabricmc.fabric-api:fabric-api:$rootProject.fabric_api_version"
modImplementation "dev.architectury:architectury-fabric:$rootProject.architectury_api_version"
common(project(path: ':common', configuration: 'namedElements')) { transitive false }
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
testImplementation(testFixtures(project(":common")))
shadowBundle project(path: ':common', configuration: 'transformProductionFabric')
}
processResources {
inputs.property 'version', project.version
filesMatching('fabric.mod.json') {
expand version: project.version
}
}
shadowJar {
configurations = [project.configurations.shadowBundle]
archiveClassifier = 'dev-shadow'
}
remapJar {
input.set shadowJar.archiveFile
}
Подробнее здесь: https://stackoverflow.com/questions/797 ... stfixtures