[Solved] Migrating standard SDK project to Gradle Template

I always get that warning too, and I just ignore it. :slightly_smiling_face:

2 Likes

I’ve finally got the project up and running in the IDE, now I just need to work on getting a distributable version working.

Two more questions as well:

First, how do I exclude certain file types / extensions from the build process? For example I have lots of .gltf files in the assets folder but only load .j3o files, so I don’t need to build those) I think this might get the assets size under 4gb for a while so the build will work until I figure out the process of splitting the assets into multiple jars.

And secondly, my project no longer works to load my game’s icon on the taskbar. This is the code I have that works in the ant project still. I do this right before starting the JME app in the main method of the main class.

  BufferedImage img32x32 = null, img16x16 = null, img8x8 = null;
  try {
      img32x32 = ImageIO.read(new File("Logos/smallIconLogo.png"));
      img16x16 = ImageIO.read(new File("Logos/miniIconLogo.png"));
      img8x8 = ImageIO.read(new File("Logos/tinyIconLogo.png"));
      
            BufferedImage[] icons = new BufferedImage[3];

            icons[0] = img32x32;
            icons[1] = img16x16;
            icons[2] = img8x8;
            
            settings.put("Icons", icons);
     //       settings.setIcons(icons);
      
      
  } catch (IOException e) {
      e.printStackTrace();
  }
          
  app.setSettings(settings);

  app.start(JmeContext.Type.Display);

But when running the project with the gradle template (tried using both jme 3.3 and 3.5) it prints out this very short error :


javax.imageio.IIOException: Can't read input file!
	at java.desktop/javax.imageio.ImageIO.read(ImageIO.java:1308)
	at com.theafflictedforests.MainSA.Main.main(Main.java:137)

Is there a different way to setup the icons for a gradle based project?

The file system has always been kind of a weird place to put things like this, though very common. Class resources would be better.

            BufferedImage[] icons = new BufferedImage[] {
                    ImageIO.read(Main.class.getResource("/game-icon-128.png")),
                    ImageIO.read(Main.class.getResource("/game-icon-32.png")),
                    ImageIO.read(Main.class.getResource("/game-icon-16.png"))
                };
            settings.setIcons(icons);

And then stick them into src/main/resources or in with your assets or whatever.

2 Likes

You should be able to add an exclude clause to the jar task, like so:

jar {
    archiveBaseName = project.ext.baseName
    exclude('**/*.gltf')
}
2 Likes

I added an exclude line for all the file types I don’t need at run-time, and I was finally able to build an assets jar that’s ~3gb, so I should have a while to figure out how to split the assets into multiple jars before its an issue again.


The only problem I’m having now is that it cannot find any of my assets when I run the distributable version. I put the assets jar in the “libs” folder with the other jars (this is where ant usually put it) and still no luck.

Do I need to add something to my build file to locate it?

For example, when I run the game in the SDK I add this line to the dependencies as @oxplay2 mentioned:

runtime files("assets")

But then I also have to remove that before the clean and build, otherwise it appears to build the entire assets folder ignoring the exclusions and fails due to the size limit. What should I do to include the already-built assets jar for the distributable version?

Make sure If it is in the classpath.

One way is to add it to MANIFEST classpath.

jar {
    manifest {
        attributes 'Main-Class': mainClassName,
                'Class-Path': "libs/assets.jar" 
    }
    // How-to add class path:
    //     https://stackoverflow.com/questions/22659463/add-classpath-in-manifest-using-gradle
    //     https://gist.github.com/simon04/6865179
}

another way is to add it manually to the CLASSPATH in the start script (the sh and bat files).

1 Like

This appears to have worked. However it increased the build time for just the code from 30 seconds to about 5 minutes, which isn’t too big of a deal considering it was taking 20 minutes to rebuild just the code before using gradle, but it would still be good to decrease the build time if possible.

If I understand right, this would be a way to include the assets after building? If so then I think this would make the build faster.

Yes, you can add it in the start scripts generated by the Gradle distribution plugin.

1 Like

@yaRnMcDonuts

I think you can do this also

startScripts {
    classpath += files('assets')
}

I would suggest this.

1 Like

I will give that a try as well, but I did manage to get it working right before you posted that by editing the batch file’s “set CLASSPATH” line

Everything’s working now, so I think I can finally mark this topic solved!

Thank you all for your help, you’ve made this process way easier than I ever expected. And now I can build just the code really fast, and then build the larger assets when needed. It’s now safe to say I’m glad that I’ve finally made the full transition over to gradle :slightly_smiling_face:

Also, here is my final build script in case it is useful to anyone else struggling to use gradle in the SDK in a similar way who stumbles upon this thread in the future. The assets project is still included, but commented out whenever I want to build just the code faster.


plugins {
    id 'java'
    id 'application'
}

group 'com.theafflictedforests'
version '1.0'

sourceCompatibility = 1.8
mainClassName = "com.theafflictedforests.MainSA.Main"

repositories {
    mavenLocal()
    mavenCentral()
    jcenter()
    maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
    maven { url "https://oss.sonatype.org/content/repositories/releases/" }
    maven { url "https://jitpack.io" }
}
 

project.ext {
  jmeVer = '3.5.0-stable' 
}


//un-comment assets project when a new assets jar needs built

//project(":assets") {
//    apply plugin: "java"       
//    
//    jar{
//        
//        zip64 = true
//            
//        exclude('**/*.j3s', '**/*.gltf','**/*.ogre','**/*.blend','**/*.bin','**/*.material','**/*.blend1', '**/*.scene', )
//        
//    }
//    
//    buildDir = rootProject.file("build/assets")
//
//    sourceSets {
//        main {
//            
//            
//            resources {
//                
//                srcDir '.'
//                
//            }
//        }
//    }
//}

dependencies {
    
//    runtime files("assets")  //comment out before clean & build
  

    implementation "org.jmonkeyengine:jme3-plugins:$jmeVer"  
    implementation "org.jmonkeyengine:jme3-core:$jmeVer"
    implementation "org.jmonkeyengine:jme3-desktop:$jmeVer"
    implementation "org.jmonkeyengine:jme3-lwjgl:$jmeVer"
    implementation "org.jmonkeyengine:jme3-effects:$jmeVer"
    implementation "org.jmonkeyengine:jme3-networking:$jmeVer"
//    implementation "org.jmonkeyengine:jme3-lwjgl3:$jmeVer"
    implementation "org.jmonkeyengine:jme3-niftygui:$jmeVer" 
    implementation "org.jmonkeyengine:jme3-terrain:$jmeVer" 
     
    implementation "org.jmonkeyengine:jme3-testdata:3.4.0-stable"
    
    implementation "com.github.stephengold:Minie:4.6.1"
  
    implementation "com.simsilica:lemur:1.13.0"
    implementation "com.simsilica:lemur-proto:1.11.0"

    implementation "com.google.guava:guava:31.0.1-jre"
    implementation "org.codehaus.groovy:groovy-all:2.4.12"
    implementation "org.slf4j:slf4j-api:1.7.25"
    
    implementation "com.googlecode.json-simple:json-simple:1.1.1"
    
    implementation "com.code-disaster.steamworks4j:steamworks4j:1.8.0"
    implementation "com.code-disaster.steamworks4j:steamworks4j-server:1.8.0"

    
    compile fileTree(dir: 'libs', include: ['*.jar'])
     
    run {
        systemProperty "java.library.path", "libs" //where libs is a folder
    }
 
}


jar {   

    manifest {
        attributes 'Main-Class': "$mainClassName"
        
    }
}
4 Likes

Instead, you can do this

run {
    classpath += files('assets')
}

so it will only availbe for run task and won’t affect the build I belive.

3 Likes

I notice the material editor is broken with a gradle project, although this isn’t a big deal since I can edit the text file still.

But whenever I try to use the SDK’s functionality to generate a new material file from a material embedded into a .j3o model that I just imported and opened in the scene editor, the material file is blank. Is this something that is also just broken when the assets are part of a gradle project?

I’m also curious to know if there’s any other SDK features that won’t work.

I also considered changing my assets to a separate non-gradle project, but then I would be susceptible to version inconsistency errors in my materials and shaders if the assets project is back on 3.3 with ant while the rest of the project is now running 3.5.

1 Like

Can you file a bug to the SDK project?

1 Like

Yes I just submitted an issue, hopefully I’ve provided enough information

1 Like

Note: if you get really stuck, JmeConvert can also generate .j3m files as part of conversion with only a teeny-tiny conversion script on the command line. JMEC is easier to integrate into a build in the long run as part of a full asset pipeline.

While there are currently no official gradle plugins for using jmec directly in a build, it isn’t hard to roll one… and until then the command line works.

1 Like

I will probably start using that to convert my models from now on since it sounds like it will save me a few step compared to the way I had to do things with the sdk’s auto-generating feature. That is a nice feature, but unfortunately it also takes an extra minute of scrolling through the file locator to re-apply the material unless you leave it in the generated folder. But I like how your converter saves the j3m as a new file rather than leaving it embedded like the SDK does.

It looks like I should also be able to make a minor edit to my own local copy of JmeConvert to make it apply my forked versions of the PBR shader before saving the material. Normally I’d have to do that manually every time as well.

Thanks!

You shouldn’t have to fork the code. You can add groovy scripts that will do whatever you want to the model before saving it back out again.

That’s the same kind of script you need to get it to save the j3m files, too… since for whatever material you find you just give it an asset key so it knows what file to use and then it will save it for you.

Let me know if you need some examples.

1 Like

I see there’s this example here that does the material generating as you mentioned, so I should hopefully be able to figure out the scripting based off of this

I also just downloaded the JmeConvert repo and am going to try it out, but I’m getting this error when I try to build it

FAILURE: Build failed with an exception.

* Where:
Build file 'C:\Users\ryan\Desktop\JmeConvert-master\JmeConvert-master\build.gradle' line: 32

* What went wrong:
Plugin [id: 'maven'] was not found in any of the following sources:

- Gradle Core Plugins (not a core plugin, please see https://docs.gradle.org/7.3.3/userguide/standard_plugins.html for available core plugins)
- Plugin Repositories (plugin dependency must include a version number for this source)

* Try:
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Exception is:
org.gradle.api.plugins.UnknownPluginException: Plugin [id: 'maven'] was not found in any of the following sources:

- Gradle Core Plugins (not a core plugin, please see https://docs.gradle.org/7.3.3/userguide/standard_plugins.html for available core plugins)
- Plugin Repositories (plugin dependency must include a version number for this source)
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.resolveToFoundResult(DefaultPluginRequestApplicator.java:221)
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.lambda$resolvePluginRequests$3(DefaultPluginRequestApplicator.java:147)
        at org.gradle.util.internal.CollectionUtils.collect(CollectionUtils.java:207)
        at org.gradle.util.internal.CollectionUtils.collect(CollectionUtils.java:201)
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.resolvePluginRequests(DefaultPluginRequestApplicator.java:145)
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugins(DefaultPluginRequestApplicator.java:88)
        at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:117)
        at org.gradle.configuration.BuildOperationScriptPlugin$1.run(BuildOperationScriptPlugin.java:65)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
        at org.gradle.configuration.BuildOperationScriptPlugin.lambda$apply$0(BuildOperationScriptPlugin.java:62)
        at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:44)
        at org.gradle.configuration.BuildOperationScriptPlugin.apply(BuildOperationScriptPlugin.java:62)
        at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$applyToMutableState$0(DefaultProjectStateRegistry.java:366)
        at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState(DefaultProjectStateRegistry.java:393)
        at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.applyToMutableState(DefaultProjectStateRegistry.java:365)
        at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:42)
        at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:26)
        at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:35)
        at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.lambda$run$0(LifecycleProjectEvaluator.java:100)
        at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$applyToMutableState$0(DefaultProjectStateRegistry.java:366)
        at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.lambda$withProjectLock$3(DefaultProjectStateRegistry.java:426)
        at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:211)
        at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.withProjectLock(DefaultProjectStateRegistry.java:426)
        at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.fromMutableState(DefaultProjectStateRegistry.java:407)
        at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.applyToMutableState(DefaultProjectStateRegistry.java:365)
        at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.run(LifecycleProjectEvaluator.java:91)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:63)
        at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:751)
        at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:151)
        at org.gradle.api.internal.project.DefaultProjectStateRegistry$ProjectStateImpl.ensureConfigured(DefaultProjectStateRegistry.java:339)
        at org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:41)
        at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:55)
        at org.gradle.configuration.DefaultProjectsPreparer.prepareProjects(DefaultProjectsPreparer.java:48)
        at org.gradle.configuration.BuildTreePreparingProjectsPreparer.prepareProjects(BuildTreePreparingProjectsPreparer.java:64)
        at org.gradle.configuration.BuildOperationFiringProjectsPreparer$ConfigureBuild.run(BuildOperationFiringProjectsPreparer.java:52)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
        at org.gradle.configuration.BuildOperationFiringProjectsPreparer.prepareProjects(BuildOperationFiringProjectsPreparer.java:40)
        at org.gradle.initialization.VintageBuildModelController.lambda$prepareProjects$1(VintageBuildModelController.java:93)
        at org.gradle.internal.build.StateTransitionController.lambda$doTransition$1(StateTransitionController.java:222)
        at org.gradle.internal.build.StateTransitionController.doTransition(StateTransitionController.java:243)
        at org.gradle.internal.build.StateTransitionController.doTransition(StateTransitionController.java:221)
        at org.gradle.internal.build.StateTransitionController.transitionIfNotPreviously(StateTransitionController.java:190)
        at org.gradle.initialization.VintageBuildModelController.prepareProjects(VintageBuildModelController.java:93)
        at org.gradle.initialization.VintageBuildModelController.doBuildStages(VintageBuildModelController.java:77)
        at org.gradle.initialization.VintageBuildModelController.prepareToScheduleTasks(VintageBuildModelController.java:64)
        at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$prepareToScheduleTasks$0(DefaultBuildLifecycleController.java:105)
        at org.gradle.internal.build.StateTransitionController.lambda$doTransition$1(StateTransitionController.java:222)
        at org.gradle.internal.build.StateTransitionController.doTransition(StateTransitionController.java:243)
        at org.gradle.internal.build.StateTransitionController.doTransition(StateTransitionController.java:221)
        at org.gradle.internal.build.StateTransitionController.maybeTransition(StateTransitionController.java:174)
        at org.gradle.internal.build.DefaultBuildLifecycleController.prepareToScheduleTasks(DefaultBuildLifecycleController.java:103)
        at org.gradle.internal.buildtree.DefaultBuildTreeWorkPreparer.scheduleRequestedTasks(DefaultBuildTreeWorkPreparer.java:33)
        at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$doScheduleAndRunTasks$2(DefaultBuildTreeLifecycleController.java:86)
        at org.gradle.composite.internal.DefaultIncludedBuildTaskGraph.withNewTaskGraph(DefaultIncludedBuildTaskGraph.java:94)
        at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.doScheduleAndRunTasks(DefaultBuildTreeLifecycleController.java:85)
        at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$runBuild$4(DefaultBuildTreeLifecycleController.java:103)
        at org.gradle.internal.build.StateTransitionController.lambda$transition$0(StateTransitionController.java:145)
        at org.gradle.internal.build.StateTransitionController.doTransition(StateTransitionController.java:243)
        at org.gradle.internal.build.StateTransitionController.transition(StateTransitionController.java:145)
        at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.runBuild(DefaultBuildTreeLifecycleController.java:100)
        at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.scheduleAndRunTasks(DefaultBuildTreeLifecycleController.java:66)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:31)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.internal.buildtree.ProblemReportingBuildActionRunner.run(ProblemReportingBuildActionRunner.java:49)
        at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:69)
        at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.java:114)
        at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:41)
        at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.lambda$execute$0(RootBuildLifecycleBuildActionExecutor.java:40)
        at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:155)
        at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.execute(RootBuildLifecycleBuildActionExecutor.java:40)
        at org.gradle.internal.buildtree.DefaultBuildTreeContext.execute(DefaultBuildTreeContext.java:40)
        at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.lambda$execute$0(BuildTreeLifecycleBuildActionExecutor.java:65)
        at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:53)
        at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.execute(BuildTreeLifecycleBuildActionExecutor.java:65)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:61)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:57)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
        at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
        at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor.execute(RunAsBuildOperationBuildActionExecutor.java:57)
        at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.lambda$execute$0(RunAsWorkerThreadBuildActionExecutor.java:38)
        at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:211)
        at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.execute(RunAsWorkerThreadBuildActionExecutor.java:38)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecutor.execute(ContinuousBuildActionExecutor.java:103)
        at org.gradle.tooling.internal.provider.SubscribableBuildActionExecutor.execute(SubscribableBuildActionExecutor.java:64)
        at org.gradle.internal.session.DefaultBuildSessionContext.execute(DefaultBuildSessionContext.java:46)
        at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply(BuildSessionLifecycleBuildActionExecuter.java:100)
        at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply(BuildSessionLifecycleBuildActionExecuter.java:88)
        at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:69)
        at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:62)
        at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:41)
        at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
        at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:63)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
        at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:58)
        at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:42)
        at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:47)
        at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:31)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:65)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75)
        at org.gradle.util.internal.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:84)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61)


* Get more help at https://help.gradle.org

Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

See https://docs.gradle.org/7.3.3/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 926ms

I use an older gradle. Maybe they changed something.

1 Like

Per the Gradle documentation, the Maven plugin is legacy, and is not supported after the gradle 6 series. You’d want to migrate the build script to use the newer maven-publish plugin instead.

2 Likes