gradle / kotlin-dsl-samples

Samples builds using the Gradle Kotlin DSL
https://gradle.org/kotlin/
Other
3.71k stars 434 forks source link

Application of plugin causes NoSuchFieldError: Companion when no companion object exists. #1293

Closed snowe2010 closed 5 years ago

snowe2010 commented 5 years ago

Companion object is being created for some internal type in gradle's kotlin-dsl. I have no Companion objects in any of my code.

Expected Behavior

No failure here.

Current Behavior

Building of plugin succeeds, but attempts at applying it to a project result in the below error.

* Exception is:
java.lang.NoSuchFieldError: Companion
        at net.researchgate.release.ReleasePlugin.apply(ReleasePlugin.kt:463)
        at net.researchgate.release.ReleasePlugin.apply(ReleasePlugin.kt:18)
        at org.gradle.api.internal.plugins.ImperativeOnlyPluginTarget.applyImperative(ImperativeOnlyPluginTarget.java:42)
        at org.gradle.api.internal.plugins.RuleBasedPluginTarget.applyImperative(RuleBasedPluginTarget.java:50)
        at org.gradle.api.internal.plugins.DefaultPluginManager.addPlugin(DefaultPluginManager.java:174)
        at org.gradle.api.internal.plugins.DefaultPluginManager.access$300(DefaultPluginManager.java:50)
        at org.gradle.api.internal.plugins.DefaultPluginManager$AddPluginBuildOperation.run(DefaultPluginManager.java:264)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.api.internal.plugins.DefaultPluginManager$2.execute(DefaultPluginManager.java:152)
        at org.gradle.api.internal.plugins.DefaultPluginManager$2.execute(DefaultPluginManager.java:149)
        at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:48)
        at org.gradle.api.internal.plugins.DefaultPluginManager.doApply(DefaultPluginManager.java:149)
        at org.gradle.api.internal.plugins.DefaultPluginManager.apply(DefaultPluginManager.java:130)
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator$3.run(DefaultPluginRequestApplicator.java:151)
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugin(DefaultPluginRequestApplicator.java:225)
        at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugins(DefaultPluginRequestApplicator.java:148)
        at org.gradle.kotlin.dsl.provider.PluginRequestsHandler.handle(PluginRequestsHandler.kt:49)
        at org.gradle.kotlin.dsl.provider.StandardKotlinScriptEvaluator$InterpreterHost.applyPluginsTo(KotlinScriptEvaluator.kt:183)
        at org.gradle.kotlin.dsl.execution.Interpreter$ProgramHost.applyPluginsTo(Interpreter.kt:356)
        at Program.execute(Unknown Source)
        at org.gradle.kotlin.dsl.execution.Interpreter$ProgramHost.eval(Interpreter.kt:498)
        at org.gradle.kotlin.dsl.execution.Interpreter.eval(Interpreter.kt:164)
        at org.gradle.kotlin.dsl.provider.StandardKotlinScriptEvaluator.evaluate(KotlinScriptEvaluator.kt:112)
        at org.gradle.kotlin.dsl.provider.KotlinScriptPluginFactory$create$1.invoke(KotlinScriptPluginFactory.kt:51)
        at org.gradle.kotlin.dsl.provider.KotlinScriptPluginFactory$create$1.invoke(KotlinScriptPluginFactory.kt:36)
        at org.gradle.kotlin.dsl.provider.KotlinScriptPlugin.apply(KotlinScriptPlugin.kt:34)
        at org.gradle.configuration.BuildOperationScriptPlugin$1$1.run(BuildOperationScriptPlugin.java:69)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.configuration.BuildOperationScriptPlugin$1.execute(BuildOperationScriptPlugin.java:66)
        at org.gradle.configuration.BuildOperationScriptPlugin$1.execute(BuildOperationScriptPlugin.java:63)
        at org.gradle.configuration.internal.DefaultUserCodeApplicationContext.apply(DefaultUserCodeApplicationContext.java:48)
        at org.gradle.configuration.BuildOperationScriptPlugin.apply(BuildOperationScriptPlugin.java:63)
        at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:41)
        at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:26)
        at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34)
        at org.gradle.configuration.project.LifecycleProjectEvaluator$EvaluateProject.run(LifecycleProjectEvaluator.java:105)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:68)
        at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:687)
        at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:140)
        at org.gradle.execution.TaskPathProjectEvaluator.configure(TaskPathProjectEvaluator.java:35)
        at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:60)
        at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:41)
        at org.gradle.initialization.DefaultGradleLauncher$ConfigureBuild.run(DefaultGradleLauncher.java:274)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.initialization.DefaultGradleLauncher.configureBuild(DefaultGradleLauncher.java:182)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:141)
        at org.gradle.initialization.DefaultGradleLauncher.executeTasks(DefaultGradleLauncher.java:124)
        at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:77)
        at org.gradle.internal.invocation.GradleBuildController$1.call(GradleBuildController.java:74)
        at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:154)
        at org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks(StopShieldingWorkerLeaseService.java:38)
        at org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:96)
        at org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:74)
        at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:28)
        at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
        at org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.run(RunAsBuildOperationBuildActionRunner.java:50)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
        at org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45)
        at org.gradle.tooling.internal.provider.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:51)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:47)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:44)
        at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:79)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:44)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
        at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:39)
        at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:25)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:80)
        at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:53)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:62)
        at org.gradle.tooling.internal.provider.ServicesSetupBuildActionExecuter.execute(ServicesSetupBuildActionExecuter.java:34)
        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.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43)
        at org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:59)
        at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
        at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:59)
        at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:44)
        at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:46)
        at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:30)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:67)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:62)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:81)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
        at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:122)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:295)
        at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
        at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
        at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)

Here is a link to the relevant plugin code

Here is the result of javap -verbose -private net/researchgate/release/ReleasePlugin.class which seems to be the source of the Companion error.

Classfile /Users/tyler.thrailkill/Documents/code/oss/gradle-release/build/libs/net/researchgate/release/ReleasePlugin.class
  Last modified Dec 10, 2018; size 9407 bytes
  MD5 checksum 06d22b630cb482f72652110bdccc6162
  Compiled from "ReleasePlugin.kt"
public final class net.researchgate.release.ReleasePlugin extends java.lang.Object implements org.gradle.api.Plugin
  minor version: 0
  major version: 52
  flags: ACC_PUBLIC, ACC_FINAL, ACC_SUPER
Constant pool:
    #1 = Utf8               net/researchgate/release/ReleasePlugin
    #2 = Class              #1            // net/researchgate/release/ReleasePlugin
    #3 = Utf8               Ljava/lang/Object;Lorg/gradle/api/Plugin;
    #4 = Utf8               java/lang/Object
    #5 = Class              #4            // java/lang/Object
    #6 = Utf8               org/gradle/api/Plugin
    #7 = Class              #6            // org/gradle/api/Plugin
    #8 = Utf8               $$delegatedProperties
    #9 = Utf8               [Lkotlin/reflect/KProperty;
   #10 = Utf8               
   #11 = Utf8               ()V
   #12 = Utf8               RELEASE_GROUP
   #13 = Utf8               Ljava/lang/String;
   #14 = Utf8               Release
   #15 = String             #14           // Release
   #16 = Utf8               Lorg/jetbrains/annotations/NotNull;
   #17 = Utf8               getRELEASE_GROUP
   #18 = Utf8               ()Ljava/lang/String;
   #19 = NameAndType        #12:#13       // RELEASE_GROUP:Ljava/lang/String;
   #20 = Fieldref           #2.#19        // net/researchgate/release/ReleasePlugin.RELEASE_GROUP:Ljava/lang/String;
   #21 = Utf8               this
   #22 = Utf8               Lnet/researchgate/release/ReleasePlugin;
   #23 = Utf8               PROMOTE_GROUP
   #24 = Utf8               Promote
   #25 = String             #24           // Promote
   #26 = Utf8               getPROMOTE_GROUP
   #27 = NameAndType        #23:#13       // PROMOTE_GROUP:Ljava/lang/String;
   #28 = Fieldref           #2.#27        // net/researchgate/release/ReleasePlugin.PROMOTE_GROUP:Ljava/lang/String;
   #29 = Utf8               scmAdapter
   #30 = Utf8               Lnet/researchgate/release/BaseScmAdapter;
   #31 = Utf8               project
   #32 = Utf8               Lorg/gradle/api/Project;
   #33 = Utf8               extension
   #34 = Utf8               Lnet/researchgate/release/ReleaseExtension;
   #35 = Utf8               executor$delegate
   #36 = Utf8               Lkotlin/Lazy;
   #37 = Utf8               getExecutor
   #38 = Utf8               ()Lnet/researchgate/release/cli/Executor;
   #39 = NameAndType        #35:#36       // executor$delegate:Lkotlin/Lazy;
   #40 = Fieldref           #2.#39        // net/researchgate/release/ReleasePlugin.executor$delegate:Lkotlin/Lazy;
   #41 = NameAndType        #8:#9         // $$delegatedProperties:[Lkotlin/reflect/KProperty;
   #42 = Fieldref           #2.#41        // net/researchgate/release/ReleasePlugin.$$delegatedProperties:[Lkotlin/reflect/KProperty;
   #43 = Utf8               kotlin/Lazy
   #44 = Class              #43           // kotlin/Lazy
   #45 = Utf8               getValue
   #46 = Utf8               ()Ljava/lang/Object;
   #47 = NameAndType        #45:#46       // getValue:()Ljava/lang/Object;
   #48 = InterfaceMethodref #44.#47       // kotlin/Lazy.getValue:()Ljava/lang/Object;
   #49 = Utf8               net/researchgate/release/cli/Executor
   #50 = Class              #49           // net/researchgate/release/cli/Executor
   #51 = Utf8               attributes
   #52 = Utf8               Ljava/util/Map;
   #53 = Utf8               Ljava/util/Map;
   #54 = Utf8               apply
   #55 = Utf8               (Lorg/gradle/api/Project;)V
   #56 = Utf8               (Ljava/lang/Object;)V
   #57 = Utf8               org/gradle/api/Project
   #58 = Class              #57           // org/gradle/api/Project
   #59 = NameAndType        #54:#55       // apply:(Lorg/gradle/api/Project;)V
   #60 = Methodref          #2.#59        // net/researchgate/release/ReleasePlugin.apply:(Lorg/gradle/api/Project;)V
   #61 = String             #31           // project
   #62 = Utf8               kotlin/jvm/internal/Intrinsics
   #63 = Class              #62           // kotlin/jvm/internal/Intrinsics
   #64 = Utf8               checkParameterIsNotNull
   #65 = Utf8               (Ljava/lang/Object;Ljava/lang/String;)V
   #66 = NameAndType        #64:#65       // checkParameterIsNotNull:(Ljava/lang/Object;Ljava/lang/String;)V
   #67 = Methodref          #63.#66       // kotlin/jvm/internal/Intrinsics.checkParameterIsNotNull:(Ljava/lang/Object;Ljava/lang/String;)V
   #68 = Utf8               net/researchgate/release/ReleasePlugin$apply$1
   #69 = Class              #68           // net/researchgate/release/ReleasePlugin$apply$1
   #70 = Utf8               
   #71 = NameAndType        #70:#55       // "":(Lorg/gradle/api/Project;)V
   #72 = Methodref          #69.#71       // net/researchgate/release/ReleasePlugin$apply$1."":(Lorg/gradle/api/Project;)V
   #73 = NameAndType        #31:#32       // project:Lorg/gradle/api/Project;
   #74 = Fieldref           #2.#73        // net/researchgate/release/ReleasePlugin.project:Lorg/gradle/api/Project;
   #75 = Utf8               getExtensions
   #76 = Utf8               ()Lorg/gradle/api/plugins/ExtensionContainer;
   #77 = NameAndType        #75:#76       // getExtensions:()Lorg/gradle/api/plugins/ExtensionContainer;
   #78 = InterfaceMethodref #58.#77       // org/gradle/api/Project.getExtensions:()Lorg/gradle/api/plugins/ExtensionContainer;
   #79 = Utf8               release
   #80 = String             #79           // release
   #81 = Utf8               net/researchgate/release/ReleaseExtension
   #82 = Class              #81           // net/researchgate/release/ReleaseExtension
   #83 = NameAndType        #51:#52       // attributes:Ljava/util/Map;
   #84 = Fieldref           #2.#83        // net/researchgate/release/ReleasePlugin.attributes:Ljava/util/Map;
   #85 = Utf8               org/gradle/api/plugins/ExtensionContainer
   #86 = Class              #85           // org/gradle/api/plugins/ExtensionContainer
   #87 = Utf8               create
   #88 = Utf8               (Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
   #89 = NameAndType        #87:#88       // create:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
   #90 = InterfaceMethodref #86.#89       // org/gradle/api/plugins/ExtensionContainer.create:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
   #91 = NameAndType        #33:#34       // extension:Lnet/researchgate/release/ReleaseExtension;
   #92 = Fieldref           #2.#91        // net/researchgate/release/ReleasePlugin.extension:Lnet/researchgate/release/ReleaseExtension;
   #93 = Utf8               release.preCommitText
   #94 = String             #93           // release.preCommitText
   #95 = Utf8               preCommitText
   #96 = String             #95           // preCommitText
   #97 = Utf8               invoke
   #98 = Utf8               (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
   #99 = NameAndType        #97:#98       // invoke:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
  #100 = Methodref          #69.#99       // net/researchgate/release/ReleasePlugin$apply$1.invoke:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
  #101 = String             #33           // extension
  #102 = Utf8               throwUninitializedPropertyAccessException
  #103 = Utf8               (Ljava/lang/String;)V
  #104 = NameAndType        #102:#103     // throwUninitializedPropertyAccessException:(Ljava/lang/String;)V
  #105 = Methodref          #63.#104      // kotlin/jvm/internal/Intrinsics.throwUninitializedPropertyAccessException:(Ljava/lang/String;)V
  #106 = Utf8               setPreCommitText
  #107 = NameAndType        #106:#103     // setPreCommitText:(Ljava/lang/String;)V
  #108 = Methodref          #82.#107      // net/researchgate/release/ReleaseExtension.setPreCommitText:(Ljava/lang/String;)V
  #109 = Utf8               kotlin/jvm/internal/Ref$ObjectRef
  #110 = Class              #109          // kotlin/jvm/internal/Ref$ObjectRef
  #111 = NameAndType        #70:#11       // "":()V
  #112 = Methodref          #110.#111     // kotlin/jvm/internal/Ref$ObjectRef."":()V
  #113 = Utf8               getPath
  #114 = NameAndType        #113:#18      // getPath:()Ljava/lang/String;
  #115 = InterfaceMethodref #58.#114      // org/gradle/api/Project.getPath:()Ljava/lang/String;
  #116 = Utf8               project.path
  #117 = String             #116          // project.path
  #118 = Utf8               checkExpressionValueIsNotNull
  #119 = NameAndType        #118:#65      // checkExpressionValueIsNotNull:(Ljava/lang/Object;Ljava/lang/String;)V
  #120 = Methodref          #63.#119      // kotlin/jvm/internal/Intrinsics.checkExpressionValueIsNotNull:(Ljava/lang/Object;Ljava/lang/String;)V
  #121 = Utf8               element
  #122 = Utf8               Ljava/lang/Object;
  #123 = NameAndType        #121:#122     // element:Ljava/lang/Object;
  #124 = Fieldref           #110.#123     // kotlin/jvm/internal/Ref$ObjectRef.element:Ljava/lang/Object;
  #125 = Utf8               java/lang/String
  #126 = Class              #125          // java/lang/String
  #127 = Utf8               :
  #128 = String             #127          // :
  #129 = Utf8               kotlin/text/StringsKt
  #130 = Class              #129          // kotlin/text/StringsKt
  #131 = Utf8               endsWith$default
  #132 = Utf8               (Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Z
  #133 = NameAndType        #131:#132     // endsWith$default:(Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Z
  #134 = Methodref          #130.#133     // kotlin/text/StringsKt.endsWith$default:(Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Z
  #135 = Utf8               java/lang/StringBuilder
  #136 = Class              #135          // java/lang/StringBuilder
  #137 = Methodref          #136.#111     // java/lang/StringBuilder."":()V
  #138 = Utf8               append
  #139 = Utf8               (Ljava/lang/String;)Ljava/lang/StringBuilder;
  #140 = NameAndType        #138:#139     // append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
  #141 = Methodref          #136.#140     // java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
  #142 = Utf8               toString
  #143 = NameAndType        #142:#18      // toString:()Ljava/lang/String;
  #144 = Methodref          #136.#143     // java/lang/StringBuilder.toString:()Ljava/lang/String;
  #145 = Utf8               getTasks
  #146 = Utf8               ()Lorg/gradle/api/tasks/TaskContainer;
  #147 = NameAndType        #145:#146     // getTasks:()Lorg/gradle/api/tasks/TaskContainer;
  #148 = InterfaceMethodref #58.#147      // org/gradle/api/Project.getTasks:()Lorg/gradle/api/tasks/TaskContainer;
  #149 = Utf8               tasks
  #150 = String             #149          // tasks
  #151 = Utf8               org/gradle/kotlin/dsl/TaskContainerScope
  #152 = Class              #151          // org/gradle/kotlin/dsl/TaskContainerScope
  #153 = Utf8               Companion
  #154 = Utf8               Lorg/gradle/kotlin/dsl/TaskContainerScope$Companion;
  #155 = NameAndType        #153:#154     // Companion:Lorg/gradle/kotlin/dsl/TaskContainerScope$Companion;
  #156 = Fieldref           #152.#155     // org/gradle/kotlin/dsl/TaskContainerScope.Companion:Lorg/gradle/kotlin/dsl/TaskContainerScope$Companion;
  #157 = Utf8               org/gradle/kotlin/dsl/TaskContainerScope$Companion
  #158 = Class              #157          // org/gradle/kotlin/dsl/TaskContainerScope$Companion
  #159 = Utf8               of
  #160 = Utf8               (Lorg/gradle/api/tasks/TaskContainer;)Lorg/gradle/kotlin/dsl/TaskContainerScope;
  #161 = NameAndType        #159:#160     // of:(Lorg/gradle/api/tasks/TaskContainer;)Lorg/gradle/kotlin/dsl/TaskContainerScope;
  #162 = Methodref          #158.#161     // org/gradle/kotlin/dsl/TaskContainerScope$Companion.of:(Lorg/gradle/api/tasks/TaskContainer;)Lorg/gradle/kotlin/dsl/TaskContainerScope;
  #163 = Utf8               org/gradle/api/tasks/TaskContainer
  #164 = Class              #163          // org/gradle/api/tasks/TaskContainer
  #165 = Utf8               net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$1
  #166 = Class              #165          // net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$1
  #167 = Utf8               (Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
  #168 = NameAndType        #70:#167      // "":(Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
  #169 = Methodref          #166.#168     // net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$1."":(Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
  #170 = Utf8               kotlin/jvm/functions/Function1
  #171 = Class              #170          // kotlin/jvm/functions/Function1
  #172 = Utf8               org/gradle/api/tasks/GradleBuild
  #173 = Class              #172          // org/gradle/api/tasks/GradleBuild
  #174 = Utf8               net/researchgate/release/ReleasePlugin$inlined$sam$i$org_gradle_api_Action$0
  #175 = Class              #174          // net/researchgate/release/ReleasePlugin$inlined$sam$i$org_gradle_api_Action$0
  #176 = Utf8               (Lkotlin/jvm/functions/Function1;)V
  #177 = NameAndType        #70:#176      // "":(Lkotlin/jvm/functions/Function1;)V
  #178 = Methodref          #175.#177     // net/researchgate/release/ReleasePlugin$inlined$sam$i$org_gradle_api_Action$0."":(Lkotlin/jvm/functions/Function1;)V
  #179 = Utf8               org/gradle/api/Action
  #180 = Class              #179          // org/gradle/api/Action
  #181 = Utf8               register
  #182 = Utf8               (Ljava/lang/String;Ljava/lang/Class;Lorg/gradle/api/Action;)Lorg/gradle/api/tasks/TaskProvider;
  #183 = NameAndType        #181:#182     // register:(Ljava/lang/String;Ljava/lang/Class;Lorg/gradle/api/Action;)Lorg/gradle/api/tasks/TaskProvider;
  #184 = InterfaceMethodref #164.#183     // org/gradle/api/tasks/TaskContainer.register:(Ljava/lang/String;Ljava/lang/Class;Lorg/gradle/api/Action;)Lorg/gradle/api/tasks/TaskProvider;
  #185 = Utf8               register(name, T::class.java, configuration)
  #186 = String             #185          // register(name, T::class.java, configuration)
  #187 = Utf8               blah
  #188 = String             #187          // blah
  #189 = Utf8               net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$2
  #190 = Class              #189          // net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$2
  #191 = Methodref          #190.#168     // net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$2."":(Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
  #192 = Utf8               promote
  #193 = String             #192          // promote
  #194 = Utf8               net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$3
  #195 = Class              #194          // net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$3
  #196 = Methodref          #195.#168     // net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$3."":(Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
  #197 = Utf8               createScmAdapter
  #198 = String             #197          // createScmAdapter
  #199 = Utf8               net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$4
  #200 = Class              #199          // net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$4
  #201 = Methodref          #200.#168     // net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$4."":(Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
  #202 = Utf8               net/researchgate/release/CreateScmAdapterTask
  #203 = Class              #202          // net/researchgate/release/CreateScmAdapterTask
  #204 = Utf8               checkCommitNeeded
  #205 = String             #204          // checkCommitNeeded
  #206 = Utf8               net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$5
  #207 = Class              #206          // net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$5
  #208 = Utf8               (Lorg/gradle/api/tasks/TaskProvider;Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
  #209 = NameAndType        #70:#208      // "":(Lorg/gradle/api/tasks/TaskProvider;Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
  #210 = Methodref          #207.#209     // net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$5."":(Lorg/gradle/api/tasks/TaskProvider;Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
  #211 = Utf8               net/researchgate/release/CheckCommitNeededTask
  #212 = Class              #211          // net/researchgate/release/CheckCommitNeededTask
  #213 = Utf8               checkUpdateNeeded
  #214 = String             #213          // checkUpdateNeeded
  #215 = Utf8               net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$6
  #216 = Class              #215          // net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$6
  #217 = Methodref          #216.#209     // net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$6."":(Lorg/gradle/api/tasks/TaskProvider;Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
  #218 = Utf8               net/researchgate/release/CheckUpdateNeededTask
  #219 = Class              #218          // net/researchgate/release/CheckUpdateNeededTask
  #220 = Utf8               checkoutMergeToReleaseBranch
  #221 = String             #220          // checkoutMergeToReleaseBranch
  #222 = Utf8               net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$7
  #223 = Class              #222          // net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$7
  #224 = Methodref          #223.#209     // net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$7."":(Lorg/gradle/api/tasks/TaskProvider;Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
  #225 = Utf8               net/researchgate/release/CheckoutMergeToReleaseBranchTask
  #226 = Class              #225          // net/researchgate/release/CheckoutMergeToReleaseBranchTask
  #227 = Utf8               $receiver$iv
  #228 = Utf8               Lorg/gradle/api/tasks/TaskContainer;
  #229 = Utf8               name$iv
  #230 = Utf8               configuration$iv
  #231 = Utf8               Lkotlin/jvm/functions/Function1;
  #232 = Utf8               $i$f$register
  #233 = Utf8               I
  #234 = Utf8               createScmAdapterTask
  #235 = Utf8               Lorg/gradle/api/tasks/TaskProvider;
  #236 = Utf8               $receiver
  #237 = Utf8               Lorg/gradle/kotlin/dsl/TaskContainerScope;
  #238 = Utf8               $i$a$1$invoke
  #239 = Utf8               $i$a$1$apply
  #240 = Utf8               $i$f$invoke
  #241 = Utf8               $i$a$2$with
  #242 = Utf8               p
  #243 = Utf8               Lkotlin/jvm/internal/Ref$ObjectRef;
  #244 = Utf8               findProperty$
  #245 = Utf8               Lnet/researchgate/release/ReleasePlugin$apply$1;
  #246 = Methodref          #5.#111       // java/lang/Object."":()V
  #247 = Utf8               net/researchgate/release/ReleasePlugin$executor$2
  #248 = Class              #247          // net/researchgate/release/ReleasePlugin$executor$2
  #249 = Utf8               (Lnet/researchgate/release/ReleasePlugin;)V
  #250 = NameAndType        #70:#249      // "":(Lnet/researchgate/release/ReleasePlugin;)V
  #251 = Methodref          #248.#250     // net/researchgate/release/ReleasePlugin$executor$2."":(Lnet/researchgate/release/ReleasePlugin;)V
  #252 = Utf8               kotlin/jvm/functions/Function0
  #253 = Class              #252          // kotlin/jvm/functions/Function0
  #254 = Utf8               kotlin/LazyKt
  #255 = Class              #254          // kotlin/LazyKt
  #256 = Utf8               lazy
  #257 = Utf8               (Lkotlin/jvm/functions/Function0;)Lkotlin/Lazy;
  #258 = NameAndType        #256:#257     // lazy:(Lkotlin/jvm/functions/Function0;)Lkotlin/Lazy;
  #259 = Methodref          #255.#258     // kotlin/LazyKt.lazy:(Lkotlin/jvm/functions/Function0;)Lkotlin/Lazy;
  #260 = Utf8               java/util/LinkedHashMap
  #261 = Class              #260          // java/util/LinkedHashMap
  #262 = Methodref          #261.#111     // java/util/LinkedHashMap."":()V
  #263 = Utf8               java/util/Map
  #264 = Class              #263          // java/util/Map
  #265 = Utf8               access$getExtension$p
  #266 = Utf8               (Lnet/researchgate/release/ReleasePlugin;)Lnet/researchgate/release/ReleaseExtension;
  #267 = Utf8               $this
  #268 = Utf8               access$setExtension$p
  #269 = Utf8               (Lnet/researchgate/release/ReleasePlugin;Lnet/researchgate/release/ReleaseExtension;)V
  #270 = Utf8               
  #271 = Utf8               access$getProject$p
  #272 = Utf8               (Lnet/researchgate/release/ReleasePlugin;)Lorg/gradle/api/Project;
  #273 = Utf8               access$setProject$p
  #274 = Utf8               (Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;)V
  #275 = Utf8               Lkotlin/Metadata;
  #276 = Utf8               mv
  #277 = Integer            1
  #278 = Integer            13
  #279 = Utf8               bv
  #280 = Integer            0
  #281 = Integer            3
  #282 = Utf8               k
  #283 = Utf8               d1
  #284 = Utf8               >\n\n\n\n\n\n\n%\n\n\n\n\n\n\n\n\n\n200B¢J020HR0X†D¢\nR0X†D¢\n\tR\n000X‚¢\nR\r08BX‚„¢\nR0X‚.¢\nR0X‚.¢\nR0X‚.¢\n¨
  #285 = Utf8               d2
  #286 = Utf8               Lorg/gradle/api/Plugin;
  #287 = Utf8
  #288 = Utf8               executor
  #289 = Utf8               Lnet/researchgate/release/cli/Executor;
  #290 = Utf8               gradle-release
  #291 = Utf8               kotlin/reflect/KProperty
  #292 = Class              #291          // kotlin/reflect/KProperty
  #293 = Utf8               kotlin/jvm/internal/PropertyReference1Impl
  #294 = Class              #293          // kotlin/jvm/internal/PropertyReference1Impl
  #295 = Utf8               kotlin/jvm/internal/Reflection
  #296 = Class              #295          // kotlin/jvm/internal/Reflection
  #297 = Utf8               getOrCreateKotlinClass
  #298 = Utf8               (Ljava/lang/Class;)Lkotlin/reflect/KClass;
  #299 = NameAndType        #297:#298     // getOrCreateKotlinClass:(Ljava/lang/Class;)Lkotlin/reflect/KClass;
  #300 = Methodref          #296.#299     // kotlin/jvm/internal/Reflection.getOrCreateKotlinClass:(Ljava/lang/Class;)Lkotlin/reflect/KClass;
  #301 = String             #288          // executor
  #302 = Utf8               getExecutor()Lnet/researchgate/release/cli/Executor;
  #303 = String             #302          // getExecutor()Lnet/researchgate/release/cli/Executor;
  #304 = Utf8               (Lkotlin/reflect/KDeclarationContainer;Ljava/lang/String;Ljava/lang/String;)V
  #305 = NameAndType        #70:#304      // "":(Lkotlin/reflect/KDeclarationContainer;Ljava/lang/String;Ljava/lang/String;)V
  #306 = Methodref          #294.#305     // kotlin/jvm/internal/PropertyReference1Impl."":(Lkotlin/reflect/KDeclarationContainer;Ljava/lang/String;Ljava/lang/String;)V
  #307 = Utf8               property1
  #308 = Utf8               (Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/reflect/KProperty1;
  #309 = NameAndType        #307:#308     // property1:(Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/reflect/KProperty1;
  #310 = Methodref          #296.#309     // kotlin/jvm/internal/Reflection.property1:(Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/reflect/KProperty1;
  #311 = Utf8               ReleasePlugin.kt
  #312 = Utf8               ConstantValue
  #313 = Utf8               RuntimeInvisibleAnnotations
  #314 = Utf8               Signature
  #315 = Utf8               Code
  #316 = Utf8               LocalVariableTable
  #317 = Utf8               LineNumberTable
  #318 = Utf8               StackMapTable
  #319 = Utf8               MethodParameters
  #320 = Utf8               RuntimeInvisibleParameterAnnotations
  #321 = Utf8               SourceFile
  #322 = Utf8               SourceDebugExtension
  #323 = Utf8               InnerClasses
  #324 = Utf8               RuntimeVisibleAnnotations
{
  static final kotlin.reflect.KProperty[] $$delegatedProperties;
    descriptor: [Lkotlin/reflect/KProperty;
    flags: ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC

  private final java.lang.String RELEASE_GROUP;
    descriptor: Ljava/lang/String;
    flags: ACC_PRIVATE, ACC_FINAL
    ConstantValue: String Release
    RuntimeInvisibleAnnotations:
      0: #16()

  private final java.lang.String PROMOTE_GROUP;
    descriptor: Ljava/lang/String;
    flags: ACC_PRIVATE, ACC_FINAL
    ConstantValue: String Promote
    RuntimeInvisibleAnnotations:
      0: #16()

  private net.researchgate.release.BaseScmAdapter scmAdapter;
    descriptor: Lnet/researchgate/release/BaseScmAdapter;
    flags: ACC_PRIVATE

  private org.gradle.api.Project project;
    descriptor: Lorg/gradle/api/Project;
    flags: ACC_PRIVATE

  private net.researchgate.release.ReleaseExtension extension;
    descriptor: Lnet/researchgate/release/ReleaseExtension;
    flags: ACC_PRIVATE

  private final kotlin.Lazy executor$delegate;
    descriptor: Lkotlin/Lazy;
    flags: ACC_PRIVATE, ACC_FINAL

  private java.util.Map attributes;
    descriptor: Ljava/util/Map;
    flags: ACC_PRIVATE
    Signature: #53                          // Ljava/util/Map;

  static {};
    descriptor: ()V
    flags: ACC_STATIC
    Code:
      stack=8, locals=0, args_size=0
         0: iconst_1
         1: anewarray     #292                // class kotlin/reflect/KProperty
         4: dup
         5: iconst_0
         6: new           #294                // class kotlin/jvm/internal/PropertyReference1Impl
         9: dup
        10: ldc           #2                  // class net/researchgate/release/ReleasePlugin
        12: invokestatic  #300                // Method kotlin/jvm/internal/Reflection.getOrCreateKotlinClass:(Ljava/lang/Class;)Lkotlin/reflect/KClass;
        15: ldc_w         #301                // String executor
        18: ldc_w         #303                // String getExecutor()Lnet/researchgate/release/cli/Executor;
        21: invokespecial #306                // Method kotlin/jvm/internal/PropertyReference1Impl."":(Lkotlin/reflect/KDeclarationContainer;Ljava/lang/String;Ljava/lang/String;)V
        24: invokestatic  #310                // Method kotlin/jvm/internal/Reflection.property1:(Lkotlin/jvm/internal/PropertyReference1;)Lkotlin/reflect/KProperty1;
        27: checkcast     #292                // class kotlin/reflect/KProperty
        30: aastore
        31: putstatic     #42                 // Field $$delegatedProperties:[Lkotlin/reflect/KProperty;
        34: return

  public final java.lang.String getRELEASE_GROUP();
    descriptor: ()Ljava/lang/String;
    flags: ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
         0: aload_0
         1: getfield      #20                 // Field RELEASE_GROUP:Ljava/lang/String;
         4: areturn
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
            0       5     0  this   Lnet/researchgate/release/ReleasePlugin;
      LineNumberTable:
        line 20: 0
    RuntimeInvisibleAnnotations:
      0: #16()

  public final java.lang.String getPROMOTE_GROUP();
    descriptor: ()Ljava/lang/String;
    flags: ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
         0: aload_0
         1: getfield      #28                 // Field PROMOTE_GROUP:Ljava/lang/String;
         4: areturn
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
            0       5     0  this   Lnet/researchgate/release/ReleasePlugin;
      LineNumberTable:
        line 21: 0
    RuntimeInvisibleAnnotations:
      0: #16()

  private final net.researchgate.release.cli.Executor getExecutor();
    descriptor: ()Lnet/researchgate/release/cli/Executor;
    flags: ACC_PRIVATE, ACC_FINAL
    Code:
      stack=2, locals=4, args_size=1
         0: aload_0
         1: getfield      #40                 // Field executor$delegate:Lkotlin/Lazy;
         4: astore_1
         5: aload_0
         6: astore_2
         7: getstatic     #42                 // Field $$delegatedProperties:[Lkotlin/reflect/KProperty;
        10: iconst_0
        11: aaload
        12: astore_3
        13: aload_1
        14: invokeinterface #48,  1           // InterfaceMethod kotlin/Lazy.getValue:()Ljava/lang/Object;
        19: checkcast     #50                 // class net/researchgate/release/cli/Executor
        22: areturn
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
            0      23     0  this   Lnet/researchgate/release/ReleasePlugin;

  public void apply(org.gradle.api.Project);
    descriptor: (Lorg/gradle/api/Project;)V
    flags: ACC_PUBLIC
    Code:
      stack=8, locals=20, args_size=2
         0: aload_1
         1: ldc           #61                 // String project
         3: invokestatic  #67                 // Method kotlin/jvm/internal/Intrinsics.checkParameterIsNotNull:(Ljava/lang/Object;Ljava/lang/String;)V
         6: new           #69                 // class net/researchgate/release/ReleasePlugin$apply$1
         9: dup
        10: aload_1
        11: invokespecial #72                 // Method net/researchgate/release/ReleasePlugin$apply$1."":(Lorg/gradle/api/Project;)V
        14: astore_2
        15: aload_0
        16: aload_1
        17: putfield      #74                 // Field project:Lorg/gradle/api/Project;
        20: aload_0
        21: aload_1
        22: invokeinterface #78,  1           // InterfaceMethod org/gradle/api/Project.getExtensions:()Lorg/gradle/api/plugins/ExtensionContainer;
        27: ldc           #80                 // String release
        29: ldc           #82                 // class net/researchgate/release/ReleaseExtension
        31: iconst_2
        32: anewarray     #5                  // class java/lang/Object
        35: dup
        36: iconst_0
        37: aload_1
        38: aastore
        39: dup
        40: iconst_1
        41: aload_0
        42: getfield      #84                 // Field attributes:Ljava/util/Map;
        45: aastore
        46: invokeinterface #90,  4           // InterfaceMethod org/gradle/api/plugins/ExtensionContainer.create:(Ljava/lang/String;Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
        51: checkcast     #82                 // class net/researchgate/release/ReleaseExtension
        54: putfield      #92                 // Field extension:Lnet/researchgate/release/ReleaseExtension;
        57: aload_2
        58: ldc           #94                 // String release.preCommitText
        60: aconst_null
        61: ldc           #96                 // String preCommitText
        63: invokevirtual #100                // Method net/researchgate/release/ReleasePlugin$apply$1.invoke:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
        66: astore_3
        67: aload_3
        68: ifnull        88
        71: aload_0
        72: getfield      #92                 // Field extension:Lnet/researchgate/release/ReleaseExtension;
        75: dup
        76: ifnonnull     84
        79: ldc           #101                // String extension
        81: invokestatic  #105                // Method kotlin/jvm/internal/Intrinsics.throwUninitializedPropertyAccessException:(Ljava/lang/String;)V
        84: aload_3
        85: invokevirtual #108                // Method net/researchgate/release/ReleaseExtension.setPreCommitText:(Ljava/lang/String;)V
        88: new           #110                // class kotlin/jvm/internal/Ref$ObjectRef
        91: dup
        92: invokespecial #112                // Method kotlin/jvm/internal/Ref$ObjectRef."":()V
        95: astore        4
        97: aload         4
        99: aload_1
       100: invokeinterface #115,  1          // InterfaceMethod org/gradle/api/Project.getPath:()Ljava/lang/String;
       105: dup
       106: ldc           #117                // String project.path
       108: invokestatic  #120                // Method kotlin/jvm/internal/Intrinsics.checkExpressionValueIsNotNull:(Ljava/lang/Object;Ljava/lang/String;)V
       111: putfield      #124                // Field kotlin/jvm/internal/Ref$ObjectRef.element:Ljava/lang/Object;
       114: aload         4
       116: aload         4
       118: getfield      #124                // Field kotlin/jvm/internal/Ref$ObjectRef.element:Ljava/lang/Object;
       121: checkcast     #126                // class java/lang/String
       124: ldc           #128                // String :
       126: iconst_0
       127: iconst_2
       128: aconst_null
       129: invokestatic  #134                // Method kotlin/text/StringsKt.endsWith$default:(Ljava/lang/String;Ljava/lang/String;ZILjava/lang/Object;)Z
       132: ifne          164
       135: new           #136                // class java/lang/StringBuilder
       138: dup
       139: invokespecial #137                // Method java/lang/StringBuilder."":()V
       142: aload         4
       144: getfield      #124                // Field kotlin/jvm/internal/Ref$ObjectRef.element:Ljava/lang/Object;
       147: checkcast     #126                // class java/lang/String
       150: invokevirtual #141                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       153: ldc           #128                // String :
       155: invokevirtual #141                // Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       158: invokevirtual #144                // Method java/lang/StringBuilder.toString:()Ljava/lang/String;
       161: goto          172
       164: aload         4
       166: getfield      #124                // Field kotlin/jvm/internal/Ref$ObjectRef.element:Ljava/lang/Object;
       169: checkcast     #126                // class java/lang/String
       172: putfield      #124                // Field kotlin/jvm/internal/Ref$ObjectRef.element:Ljava/lang/Object;
       175: aload_1
       176: astore        5
       178: aload         5
       180: invokeinterface #148,  1          // InterfaceMethod org/gradle/api/Project.getTasks:()Lorg/gradle/api/tasks/TaskContainer;
       185: dup
       186: ldc           #150                // String tasks
       188: invokestatic  #120                // Method kotlin/jvm/internal/Intrinsics.checkExpressionValueIsNotNull:(Ljava/lang/Object;Ljava/lang/String;)V
       191: astore        6
       193: aload         6
       195: astore        7
       197: aload         7
       199: astore        8
       201: getstatic     #156                // Field org/gradle/kotlin/dsl/TaskContainerScope.Companion:Lorg/gradle/kotlin/dsl/TaskContainerScope$Companion;
       204: aload         8
       206: invokevirtual #162                // Method org/gradle/kotlin/dsl/TaskContainerScope$Companion.of:(Lorg/gradle/api/tasks/TaskContainer;)Lorg/gradle/kotlin/dsl/TaskContainerScope;
       209: astore        9
       211: aload         9
       213: checkcast     #164                // class org/gradle/api/tasks/TaskContainer
       216: astore        10
       218: ldc           #80                 // String release
       220: astore        11
       222: new           #166                // class net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$1
       225: dup
       226: aload_0
       227: aload_1
       228: aload         4
       230: invokespecial #169                // Method net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$1."":(Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
       233: checkcast     #171                // class kotlin/jvm/functions/Function1
       236: astore        12
       238: aload         10
       240: aload         11
       242: ldc           #173                // class org/gradle/api/tasks/GradleBuild
       244: aload         12
       246: astore        13
       248: new           #175                // class net/researchgate/release/ReleasePlugin$inlined$sam$i$org_gradle_api_Action$0
       251: dup
       252: aload         13
       254: invokespecial #178                // Method net/researchgate/release/ReleasePlugin$inlined$sam$i$org_gradle_api_Action$0."":(Lkotlin/jvm/functions/Function1;)V
       257: checkcast     #180                // class org/gradle/api/Action
       260: invokeinterface #184,  4          // InterfaceMethod org/gradle/api/tasks/TaskContainer.register:(Ljava/lang/String;Ljava/lang/Class;Lorg/gradle/api/Action;)Lorg/gradle/api/tasks/TaskProvider;
       265: dup
       266: ldc           #186                // String register(name, T::class.java, configuration)
       268: invokestatic  #120                // Method kotlin/jvm/internal/Intrinsics.checkExpressionValueIsNotNull:(Ljava/lang/Object;Ljava/lang/String;)V
       271: pop
       272: aload         9
       274: checkcast     #164                // class org/gradle/api/tasks/TaskContainer
       277: astore        10
       279: ldc           #188                // String blah
       281: astore        11
       283: new           #190                // class net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$2
       286: dup
       287: aload_0
       288: aload_1
       289: aload         4
       291: invokespecial #191                // Method net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$2."":(Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
       294: checkcast     #171                // class kotlin/jvm/functions/Function1
       297: astore        12
       299: aload         10
       301: aload         11
       303: ldc           #173                // class org/gradle/api/tasks/GradleBuild
       305: aload         12
       307: astore        13
       309: new           #175                // class net/researchgate/release/ReleasePlugin$inlined$sam$i$org_gradle_api_Action$0
       312: dup
       313: aload         13
       315: invokespecial #178                // Method net/researchgate/release/ReleasePlugin$inlined$sam$i$org_gradle_api_Action$0."":(Lkotlin/jvm/functions/Function1;)V
       318: checkcast     #180                // class org/gradle/api/Action
       321: invokeinterface #184,  4          // InterfaceMethod org/gradle/api/tasks/TaskContainer.register:(Ljava/lang/String;Ljava/lang/Class;Lorg/gradle/api/Action;)Lorg/gradle/api/tasks/TaskProvider;
       326: dup
       327: ldc           #186                // String register(name, T::class.java, configuration)
       329: invokestatic  #120                // Method kotlin/jvm/internal/Intrinsics.checkExpressionValueIsNotNull:(Ljava/lang/Object;Ljava/lang/String;)V
       332: pop
       333: aload         9
       335: checkcast     #164                // class org/gradle/api/tasks/TaskContainer
       338: astore        10
       340: ldc           #193                // String promote
       342: astore        11
       344: new           #195                // class net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$3
       347: dup
       348: aload_0
       349: aload_1
       350: aload         4
       352: invokespecial #196                // Method net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$3."":(Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
       355: checkcast     #171                // class kotlin/jvm/functions/Function1
       358: astore        12
       360: aload         10
       362: aload         11
       364: ldc           #173                // class org/gradle/api/tasks/GradleBuild
       366: aload         12
       368: astore        13
       370: new           #175                // class net/researchgate/release/ReleasePlugin$inlined$sam$i$org_gradle_api_Action$0
       373: dup
       374: aload         13
       376: invokespecial #178                // Method net/researchgate/release/ReleasePlugin$inlined$sam$i$org_gradle_api_Action$0."":(Lkotlin/jvm/functions/Function1;)V
       379: checkcast     #180                // class org/gradle/api/Action
       382: invokeinterface #184,  4          // InterfaceMethod org/gradle/api/tasks/TaskContainer.register:(Ljava/lang/String;Ljava/lang/Class;Lorg/gradle/api/Action;)Lorg/gradle/api/tasks/TaskProvider;
       387: dup
       388: ldc           #186                // String register(name, T::class.java, configuration)
       390: invokestatic  #120                // Method kotlin/jvm/internal/Intrinsics.checkExpressionValueIsNotNull:(Ljava/lang/Object;Ljava/lang/String;)V
       393: pop
       394: aload         9
       396: checkcast     #164                // class org/gradle/api/tasks/TaskContainer
       399: astore        11
       401: ldc           #198                // String createScmAdapter
       403: astore        12
       405: new           #200                // class net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$4
       408: dup
       409: aload_0
       410: aload_1
       411: aload         4
       413: invokespecial #201                // Method net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$4."":(Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
       416: checkcast     #171                // class kotlin/jvm/functions/Function1
       419: astore        13
       421: aload         11
       423: aload         12
       425: ldc           #203                // class net/researchgate/release/CreateScmAdapterTask
       427: aload         13
       429: astore        14
       431: new           #175                // class net/researchgate/release/ReleasePlugin$inlined$sam$i$org_gradle_api_Action$0
       434: dup
       435: aload         14
       437: invokespecial #178                // Method net/researchgate/release/ReleasePlugin$inlined$sam$i$org_gradle_api_Action$0."":(Lkotlin/jvm/functions/Function1;)V
       440: checkcast     #180                // class org/gradle/api/Action
       443: invokeinterface #184,  4          // InterfaceMethod org/gradle/api/tasks/TaskContainer.register:(Ljava/lang/String;Ljava/lang/Class;Lorg/gradle/api/Action;)Lorg/gradle/api/tasks/TaskProvider;
       448: dup
       449: ldc           #186                // String register(name, T::class.java, configuration)
       451: invokestatic  #120                // Method kotlin/jvm/internal/Intrinsics.checkExpressionValueIsNotNull:(Ljava/lang/Object;Ljava/lang/String;)V
       454: astore        10
       456: aload         9
       458: checkcast     #164                // class org/gradle/api/tasks/TaskContainer
       461: astore        11
       463: ldc           #205                // String checkCommitNeeded
       465: astore        12
       467: new           #207                // class net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$5
       470: dup
       471: aload         10
       473: aload_0
       474: aload_1
       475: aload         4
       477: invokespecial #210                // Method net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$5."":(Lorg/gradle/api/tasks/TaskProvider;Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
       480: checkcast     #171                // class kotlin/jvm/functions/Function1
       483: astore        13
       485: aload         11
       487: aload         12
       489: ldc           #212                // class net/researchgate/release/CheckCommitNeededTask
       491: aload         13
       493: astore        14
       495: new           #175                // class net/researchgate/release/ReleasePlugin$inlined$sam$i$org_gradle_api_Action$0
       498: dup
       499: aload         14
       501: invokespecial #178                // Method net/researchgate/release/ReleasePlugin$inlined$sam$i$org_gradle_api_Action$0."":(Lkotlin/jvm/functions/Function1;)V
       504: checkcast     #180                // class org/gradle/api/Action
       507: invokeinterface #184,  4          // InterfaceMethod org/gradle/api/tasks/TaskContainer.register:(Ljava/lang/String;Ljava/lang/Class;Lorg/gradle/api/Action;)Lorg/gradle/api/tasks/TaskProvider;
       512: dup
       513: ldc           #186                // String register(name, T::class.java, configuration)
       515: invokestatic  #120                // Method kotlin/jvm/internal/Intrinsics.checkExpressionValueIsNotNull:(Ljava/lang/Object;Ljava/lang/String;)V
       518: pop
       519: aload         9
       521: checkcast     #164                // class org/gradle/api/tasks/TaskContainer
       524: astore        11
       526: ldc           #214                // String checkUpdateNeeded
       528: astore        12
       530: new           #216                // class net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$6
       533: dup
       534: aload         10
       536: aload_0
       537: aload_1
       538: aload         4
       540: invokespecial #217                // Method net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$6."":(Lorg/gradle/api/tasks/TaskProvider;Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
       543: checkcast     #171                // class kotlin/jvm/functions/Function1
       546: astore        13
       548: aload         11
       550: aload         12
       552: ldc           #219                // class net/researchgate/release/CheckUpdateNeededTask
       554: aload         13
       556: astore        14
       558: new           #175                // class net/researchgate/release/ReleasePlugin$inlined$sam$i$org_gradle_api_Action$0
       561: dup
       562: aload         14
       564: invokespecial #178                // Method net/researchgate/release/ReleasePlugin$inlined$sam$i$org_gradle_api_Action$0."":(Lkotlin/jvm/functions/Function1;)V
       567: checkcast     #180                // class org/gradle/api/Action
       570: invokeinterface #184,  4          // InterfaceMethod org/gradle/api/tasks/TaskContainer.register:(Ljava/lang/String;Ljava/lang/Class;Lorg/gradle/api/Action;)Lorg/gradle/api/tasks/TaskProvider;
       575: dup
       576: ldc           #186                // String register(name, T::class.java, configuration)
       578: invokestatic  #120                // Method kotlin/jvm/internal/Intrinsics.checkExpressionValueIsNotNull:(Ljava/lang/Object;Ljava/lang/String;)V
       581: pop
       582: aload         9
       584: checkcast     #164                // class org/gradle/api/tasks/TaskContainer
       587: astore        11
       589: ldc           #221                // String checkoutMergeToReleaseBranch
       591: astore        12
       593: new           #223                // class net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$7
       596: dup
       597: aload         10
       599: aload_0
       600: aload_1
       601: aload         4
       603: invokespecial #224                // Method net/researchgate/release/ReleasePlugin$apply$$inlined$with$lambda$7."":(Lorg/gradle/api/tasks/TaskProvider;Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;Lkotlin/jvm/internal/Ref$ObjectRef;)V
       606: checkcast     #171                // class kotlin/jvm/functions/Function1
       609: astore        13
       611: aload         11
       613: aload         12
       615: ldc           #226                // class net/researchgate/release/CheckoutMergeToReleaseBranchTask
       617: aload         13
       619: astore        14
       621: new           #175                // class net/researchgate/release/ReleasePlugin$inlined$sam$i$org_gradle_api_Action$0
       624: dup
       625: aload         14
       627: invokespecial #178                // Method net/researchgate/release/ReleasePlugin$inlined$sam$i$org_gradle_api_Action$0."":(Lkotlin/jvm/functions/Function1;)V
       630: checkcast     #180                // class org/gradle/api/Action
       633: invokeinterface #184,  4          // InterfaceMethod org/gradle/api/tasks/TaskContainer.register:(Ljava/lang/String;Ljava/lang/Class;Lorg/gradle/api/Action;)Lorg/gradle/api/tasks/TaskProvider;
       638: dup
       639: ldc           #186                // String register(name, T::class.java, configuration)
       641: invokestatic  #120                // Method kotlin/jvm/internal/Intrinsics.checkExpressionValueIsNotNull:(Ljava/lang/Object;Ljava/lang/String;)V
       644: pop
       645: nop
       646: nop
       647: nop
       648: nop
       649: nop
       650: nop
       651: nop
       652: return
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
          238      33    10 $receiver$iv   Lorg/gradle/api/tasks/TaskContainer;
          238      33    11 name$iv   Ljava/lang/String;
          238      33    12 configuration$iv   Lkotlin/jvm/functions/Function1;
          238      33    14 $i$f$register   I
          299      33    10 $receiver$iv   Lorg/gradle/api/tasks/TaskContainer;
          299      33    11 name$iv   Ljava/lang/String;
          299      33    12 configuration$iv   Lkotlin/jvm/functions/Function1;
          299      33    14 $i$f$register   I
          360      33    10 $receiver$iv   Lorg/gradle/api/tasks/TaskContainer;
          360      33    11 name$iv   Ljava/lang/String;
          360      33    12 configuration$iv   Lkotlin/jvm/functions/Function1;
          360      33    14 $i$f$register   I
          421      33    11 $receiver$iv   Lorg/gradle/api/tasks/TaskContainer;
          421      33    12 name$iv   Ljava/lang/String;
          421      33    13 configuration$iv   Lkotlin/jvm/functions/Function1;
          421      33    15 $i$f$register   I
          485      33    11 $receiver$iv   Lorg/gradle/api/tasks/TaskContainer;
          485      33    12 name$iv   Ljava/lang/String;
          485      33    13 configuration$iv   Lkotlin/jvm/functions/Function1;
          485      33    15 $i$f$register   I
          548      33    11 $receiver$iv   Lorg/gradle/api/tasks/TaskContainer;
          548      33    12 name$iv   Ljava/lang/String;
          548      33    13 configuration$iv   Lkotlin/jvm/functions/Function1;
          548      33    15 $i$f$register   I
          611      33    11 $receiver$iv   Lorg/gradle/api/tasks/TaskContainer;
          611      33    12 name$iv   Ljava/lang/String;
          611      33    13 configuration$iv   Lkotlin/jvm/functions/Function1;
          611      33    15 $i$f$register   I
          456     189    10 createScmAdapterTask   Lorg/gradle/api/tasks/TaskProvider;
          211     435     9 $receiver   Lorg/gradle/kotlin/dsl/TaskContainerScope;
          211     435    16 $i$a$1$invoke   I
          201     446     8 $receiver$iv   Lorg/gradle/api/tasks/TaskContainer;
          201     446    17 $i$a$1$apply   I
          193     457     6 $receiver$iv   Lorg/gradle/api/tasks/TaskContainer;
          193     457    18 $i$f$invoke   I
          178     473     5 $receiver   Lorg/gradle/api/Project;
          178     473    19 $i$a$2$with   I
          114     539     4     p   Lkotlin/jvm/internal/Ref$ObjectRef;
           67     586     3 preCommitText   Ljava/lang/String;
           15     638     2 findProperty$   Lnet/researchgate/release/ReleasePlugin$apply$1;
            0     653     0  this   Lnet/researchgate/release/ReleasePlugin;
            0     653     1 project   Lorg/gradle/api/Project;
      LineNumberTable:
        line 32: 6
        line 45: 15
        line 46: 20
        line 48: 57
        line 49: 67
        line 50: 71
        line 54: 88
        line 55: 114
        line 62: 175
        line 63: 178
        line 462: 193
        line 463: 201
        line 64: 211
        line 464: 238
        line 83: 272
        line 465: 299
        line 89: 333
        line 466: 360
        line 111: 394
        line 467: 421
        line 111: 454
        line 115: 456
        line 468: 485
        line 120: 519
        line 469: 548
        line 125: 582
        line 470: 611
        line 133: 645
        line 471: 647
        line 462: 648
        line 471: 649
        line 133: 650
        line 62: 651
        line 135: 652
      StackMapTable: number_of_entries = 4
        frame_type = 255 /* full_frame */
          offset_delta = 84
          locals = [ class net/researchgate/release/ReleasePlugin, class org/gradle/api/Project, class net/researchgate/release/ReleasePlugin$apply$1, class java/lang/String ]
          stack = [ class net/researchgate/release/ReleaseExtension ]
        frame_type = 3 /* same */
        frame_type = 255 /* full_frame */
          offset_delta = 75
          locals = [ class net/researchgate/release/ReleasePlugin, class org/gradle/api/Project, class net/researchgate/release/ReleasePlugin$apply$1, class java/lang/String, class kotlin/jvm/internal/Ref$ObjectRef ]
          stack = [ class kotlin/jvm/internal/Ref$ObjectRef ]
        frame_type = 255 /* full_frame */
          offset_delta = 7
          locals = [ class net/researchgate/release/ReleasePlugin, class org/gradle/api/Project, class net/researchgate/release/ReleasePlugin$apply$1, class java/lang/String, class kotlin/jvm/internal/Ref$ObjectRef ]
          stack = [ class kotlin/jvm/internal/Ref$ObjectRef, class java/lang/String ]
    MethodParameters:
      Name                           Flags
      project
    RuntimeInvisibleParameterAnnotations:
      0:
        0: #16()

  public void apply(java.lang.Object);
    descriptor: (Ljava/lang/Object;)V
    flags: ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: aload_0
         1: aload_1
         2: checkcast     #58                 // class org/gradle/api/Project
         5: invokevirtual #60                 // Method apply:(Lorg/gradle/api/Project;)V
         8: return
      LineNumberTable:
        line 18: 0

  public net.researchgate.release.ReleasePlugin();
    descriptor: ()V
    flags: ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
         0: aload_0
         1: invokespecial #246                // Method java/lang/Object."":()V
         4: aload_0
         5: ldc           #15                 // String Release
         7: putfield      #20                 // Field RELEASE_GROUP:Ljava/lang/String;
        10: aload_0
        11: ldc           #25                 // String Promote
        13: putfield      #28                 // Field PROMOTE_GROUP:Ljava/lang/String;
        16: aload_0
        17: new           #248                // class net/researchgate/release/ReleasePlugin$executor$2
        20: dup
        21: aload_0
        22: invokespecial #251                // Method net/researchgate/release/ReleasePlugin$executor$2."":(Lnet/researchgate/release/ReleasePlugin;)V
        25: checkcast     #253                // class kotlin/jvm/functions/Function0
        28: invokestatic  #259                // Method kotlin/LazyKt.lazy:(Lkotlin/jvm/functions/Function0;)Lkotlin/Lazy;
        31: putfield      #40                 // Field executor$delegate:Lkotlin/Lazy;
        34: aload_0
        35: astore_1
        36: new           #261                // class java/util/LinkedHashMap
        39: dup
        40: invokespecial #262                // Method java/util/LinkedHashMap."":()V
        43: checkcast     #264                // class java/util/Map
        46: astore_2
        47: aload_1
        48: aload_2
        49: putfield      #84                 // Field attributes:Ljava/util/Map;
        52: return
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
            0      53     0  this   Lnet/researchgate/release/ReleasePlugin;
      LineNumberTable:
        line 18: 0
        line 20: 4
        line 21: 10
        line 28: 16
        line 29: 34

  public static final net.researchgate.release.ReleaseExtension access$getExtension$p(net.researchgate.release.ReleasePlugin);
    descriptor: (Lnet/researchgate/release/ReleasePlugin;)Lnet/researchgate/release/ReleaseExtension;
    flags: ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
         0: aload_0
         1: getfield      #92                 // Field extension:Lnet/researchgate/release/ReleaseExtension;
         4: dup
         5: ifnonnull     13
         8: ldc           #101                // String extension
        10: invokestatic  #105                // Method kotlin/jvm/internal/Intrinsics.throwUninitializedPropertyAccessException:(Ljava/lang/String;)V
        13: areturn
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
            0      14     0 $this   Lnet/researchgate/release/ReleasePlugin;
      LineNumberTable:
        line 18: 0
      StackMapTable: number_of_entries = 1
        frame_type = 77 /* same_locals_1_stack_item */
          stack = [ class net/researchgate/release/ReleaseExtension ]
    RuntimeInvisibleAnnotations:
      0: #16()

  public static final void access$setExtension$p(net.researchgate.release.ReleasePlugin, net.researchgate.release.ReleaseExtension);
    descriptor: (Lnet/researchgate/release/ReleasePlugin;Lnet/researchgate/release/ReleaseExtension;)V
    flags: ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: aload_0
         1: aload_1
         2: putfield      #92                 // Field extension:Lnet/researchgate/release/ReleaseExtension;
         5: return
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
            0       6     0 $this   Lnet/researchgate/release/ReleasePlugin;
            0       6     1    Lnet/researchgate/release/ReleaseExtension;
      LineNumberTable:
        line 18: 0
    RuntimeInvisibleParameterAnnotations:
      0:
      1:
        0: #16()

  public static final org.gradle.api.Project access$getProject$p(net.researchgate.release.ReleasePlugin);
    descriptor: (Lnet/researchgate/release/ReleasePlugin;)Lorg/gradle/api/Project;
    flags: ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
    Code:
      stack=2, locals=1, args_size=1
         0: aload_0
         1: getfield      #74                 // Field project:Lorg/gradle/api/Project;
         4: dup
         5: ifnonnull     13
         8: ldc           #61                 // String project
        10: invokestatic  #105                // Method kotlin/jvm/internal/Intrinsics.throwUninitializedPropertyAccessException:(Ljava/lang/String;)V
        13: areturn
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
            0      14     0 $this   Lnet/researchgate/release/ReleasePlugin;
      LineNumberTable:
        line 18: 0
      StackMapTable: number_of_entries = 1
        frame_type = 77 /* same_locals_1_stack_item */
          stack = [ class org/gradle/api/Project ]
    RuntimeInvisibleAnnotations:
      0: #16()

  public static final void access$setProject$p(net.researchgate.release.ReleasePlugin, org.gradle.api.Project);
    descriptor: (Lnet/researchgate/release/ReleasePlugin;Lorg/gradle/api/Project;)V
    flags: ACC_PUBLIC, ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
    Code:
      stack=2, locals=2, args_size=2
         0: aload_0
         1: aload_1
         2: putfield      #74                 // Field project:Lorg/gradle/api/Project;
         5: return
      LocalVariableTable:
        Start  Length  Slot  Name   Signature
            0       6     0 $this   Lnet/researchgate/release/ReleasePlugin;
            0       6     1    Lorg/gradle/api/Project;
      LineNumberTable:
        line 18: 0
    RuntimeInvisibleParameterAnnotations:
      0:
      1:
        0: #16()
}
Signature: #3                           // Ljava/lang/Object;Lorg/gradle/api/Plugin;
SourceFile: "ReleasePlugin.kt"
SourceDebugExtension:
  SMAP
  ReleasePlugin.kt
  Kotlin
  *S Kotlin
  *F
  + 1 ReleasePlugin.kt
  net/researchgate/release/ReleasePlugin
  + 2 TaskContainerExtensions.kt
  org/gradle/kotlin/dsl/TaskContainerExtensionsKt
  *L
  1#1,461:1
  49#2,2:462
  249#2:464
  249#2:465
  249#2:466
  249#2:467
  249#2:468
  249#2:469
  249#2:470
  51#2:471
  *E
  *S KotlinDebug
  *F
  + 1 ReleasePlugin.kt
  net/researchgate/release/ReleasePlugin
  *L
  62#1,2:462
  62#1:464
  62#1:465
  62#1:466
  62#1:467
  62#1:468
  62#1:469
  62#1:470
  62#1:471
  *E
InnerClasses:
     static final #69; //class net/researchgate/release/ReleasePlugin$apply$1
     static final #248; //class net/researchgate/release/ReleasePlugin$executor$2
RuntimeVisibleAnnotations:
  0: #275(#276=[I#277,I#277,I#278],#279=[I#277,I#280,I#281],#282=I#277,#283=[s#284],#285=[s#22,s#286,s#32,s#11,s#23,s#287,s#26,s#18,s#12,s#17,s#51,s#287,s#287,s#288,s#289,s#37,s#38,s#35,s#36,s#33,s#34,s#31,s#29,s#30,s#54,s#287,s#290])

Notice that the 'Companion' reference is in Lorg/gradle/kotlin/dsl/TaskContainerScope$Companion;

Here is a pared down version (still duplicates the issue) of the build.gradle

plugins {
    id "org.gradle.kotlin.kotlin-dsl" version "1.0.5"
    id 'groovy'
    id 'java-gradle-plugin'
    id "com.jfrog.artifactory" version "4.8.1"
    id "nu.studer.plugindev" version "1.0.6"
    id "com.palantir.idea-test-fix" version "0.1.0"
}

group='net.researchgate'

dependencies {
    testCompile("org.spockframework:spock-core:$spockVersion") { exclude group: 'org.codehaus.groovy' }
    testCompile "junit:junit:$junitVersion"
    testCompile "org.eclipse.jgit:org.eclipse.jgit:$jgitVersion"
    testCompile "cglib:cglib-nodep:$cglibVersion"
    implementation 'net.researchgate:gradle-release:2.7.1-SNAPSHOT'
    testImplementation gradleTestKit()
}

repositories {
    mavenCentral()
}
compileKotlin {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}
compileTestKotlin {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

compileGroovy.dependsOn.remove('compileJava')
compileKotlin.dependsOn compileGroovy
compileKotlin.classpath += files(compileGroovy.destinationDir)
classes.dependsOn compileKotlin

Context

This is blocking us from switching to gradle from maven, and I've been stuck on this problem for about a week now. Quite frustrating. A lot of the struggle is from trying to convert an existing plugin to gradle 5 and kotlin at the same time. The jump from 1.12 to 5 is quite large.

Steps to Reproduce (for bugs)

Build this plugin

➜ ./gradlew clean build publishToMavenLocal 

using another project with this plugin declared

id("net.researchgate.release") version "2.7.1-SNAPSHOT"

Run a clean

./gradlew clean --stacktrace 

and you should get a stacktrace like above.

Your Environment

Gradle version of project:

------------------------------------------------------------
Gradle 4.10.2
------------------------------------------------------------

Build time:   2018-09-19 18:10:15 UTC
Revision:     b4d8d5d170bb4ba516e88d7fe5647e2323d791dd

Kotlin DSL:   1.0-rc-6
Kotlin:       1.2.61
Groovy:       2.4.15
Ant:          Apache Ant(TM) version 1.9.11 compiled on March 23 2018
JVM:          1.8.0_192 (Oracle Corporation 25.192-b12)
OS:           Mac OS X 10.14.1 x86_64

Gradle version of plugin:

------------------------------------------------------------
Gradle 5.0
------------------------------------------------------------

Build time:   2018-11-26 11:48:43 UTC
Revision:     7fc6e5abf2fc5fe0824aec8a0f5462664dbcd987

Kotlin DSL:   1.0.4
Kotlin:       1.3.10
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM:          1.8.0_192 (Oracle Corporation 25.192-b12)
OS:           Mac OS X 10.14.1 x86_64
IntelliJ IDEA 2018.3 (Ultimate Edition)
Build #IU-183.4284.148, built on November 20, 2018
Licensed to PromonTech / Tyler Thrailkill
Subscription is active until September 7, 2019
JRE: 1.8.0_152-release-1343-b15 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.14.1
snowe2010 commented 5 years ago

It appears that the project version being 4.10 might be the reason.

eskatos commented 5 years ago

It looks like a mismatch between the Gradle version and the org.gradle.kotlin.kotlin-dsl plugin version.

With a build.gradle.kts, simply do:

plugins {
    `kotlin-dsl`
}

instead of

plugins {
    id("org.gradle.kotlin.kotlin-dsl") version "1.0.5"
}

Also see https://github.com/gradle/kotlin-dsl/issues/1270

snowe2010 commented 5 years ago

Yes, I forgot to close this after realizing that it could be solved that way. I still think the error message should be updated though, as it's not very clear.