Jump to content

InfinityRaider

Members
  • Posts

    1
  • Joined

  • Last visited

Everything posted by InfinityRaider

  1. I'm experiencing some issues with a multi-project Minecraft mod. I have a library mod, let's call it libmod (which is a gradle project in /root/lib/libmod), and an actual mod appmod (which is also a gradle project in /root). I have tried two options, A and B, in option A, the project is configured as a multi-project, however I can get FML to load libmod in this case. In the second case, the project is not defined as a multi-project, and the sourceSets are defined manually, but here the dependency is not regocnized in my IDE (Idea). OPTION A: I have a settings.gradle set up as such: rootProject.name = 'appmod' include 'lib/libmod' I tried setting up my build.gradle as I would have in the pre 1.12 era, defining libmod project as a dependency, and pointing to tis sourcesets as shown below, the runClient and runServer tasks will not work, because for some reason both sourceSets.main and project(":lib/libmod") point to the same sourceset (which is sourceSets.main). With this configuration, the dependency is loaded correctly though, and I can reference classes in my libmod without problem. minecraft { mappings channel: "${config.mapping_channel}", version: "${config.mapping_version}" runs { client { workingDirectory project.file('run') property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' property 'forge.logging.console.level', 'debug' mods { appmod { source sourceSets.main } libmod { source project(":lib/libmod").sourceSets.main } } } server { workingDirectory project.file('run') property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' property 'forge.logging.console.level', 'debug' mods { appmod { source sourceSets.main } libmod { source project(":lib/libmod").sourceSets.main } } } } } dependencies { minecraft "net.minecraftforge:forge:${config.version_minecraft}-${config.version_forge}" compile project(":lib/libmod") } OPTION B: As an alternative approach, I tried defining libmod's sourcesets manually, but here I had to remove the 'include libmod' statement from settings.gradle as Idea was complaining about duplicate sources. The problem here however, is that in Idea, libmod is no longer recognized as a dependency, giving compile errors whenever I reference a libmod class. sourceSets { libmod { compileClasspath += sourceSets.main.output runtimeClasspath += sourceSets.main.output java { srcDir "lib/libmod/src/main/java" } resources { srcDir "lib/libmod/src/main/resources" } } } configurations { libmodCompile.extendsFrom(compile) libmodCompileOnly.extendsFrom(compileOnly) libmodRuntimeOnly.extendsFrom(runtimeOnly) } minecraft { mappings channel: "${config.mapping_channel}", version: "${config.mapping_version}" runs { client { workingDirectory project.file('run') property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' property 'forge.logging.console.level', 'debug' mods { appmod { source sourceSets.main } libmod { source sourceSets.libmod } } } server { workingDirectory project.file('run') property 'forge.logging.markers', 'SCAN,REGISTRIES,REGISTRYDUMP' property 'forge.logging.console.level', 'debug' mods { appmod { source sourceSets.main } libmod { source sourceSets.libmod } } } } } repositories { flatDir { dirs 'lib' } } dependencies { minecraft "net.minecraftforge:forge:${config.version_minecraft}-${config.version_forge}" compile "libmod_group:libmod:libmod_version" } Thus to TLDR my question, in case of a Gradle multi-project, how does one correctly reference the sourceSets of a subproject? Or alternatively, when explicitly defining the sourceSets (not configured as multi-project), how does one then correctly define the dependency to the subproject (the former being my preferred approach)? Thanks in advance
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.