If using this ForgeGradle for building/genPatches, then the build/genPatches fails with an error:
Caused by: java.lang.NullPointerException
at net.minecraftforge.gradle.tasks.ExtractS2SRangeTask.getLibs(ExtractS2SRangeTask.java:281)
at net.minecraftforge.gradle.tasks.ExtractS2SRangeTask_Decorated.getLibs(Unknown Source)
at org.gradle.api.internal.project.taskfactory.TaskPropertyInfo$2.create(TaskPropertyInfo.java:89)
at org.gradle.util.SingleMessageLogger.whileDisabled(SingleMessageLogger.java:230)
at org.gradle.api.internal.project.taskfactory.TaskPropertyInfo.getValue(TaskPropertyInfo.java:86)
at org.gradle.api.internal.tasks.TaskPropertyValue.call(TaskPropertyValue.java:33)
at org.gradle.util.GUtil.uncheckedCall(GUtil.java:436)
at org.gradle.api.internal.file.collections.BuildDependenciesOnlyFileCollectionResolveContext.add(BuildDependenciesOnlyFileCollectionResolveContext.java:76)
at org.gradle.api.internal.tasks.TaskPropertyFileCollection.visitContents(TaskPropertyFileCollection.java:53)
at org.gradle.api.internal.file.CompositeFileCollection.visitDependencies(CompositeFileCollection.java:166)
at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext$TaskGraphImpl.getNodeValues(CachingTaskDependencyResolveContext.java:90)
at org.gradle.internal.graph.CachingDirectedGraphWalker$GraphWithEmpyEdges.getNodeValues(CachingDirectedGraphWalker.java:202)
at org.gradle.internal.graph.CachingDirectedGraphWalker.doSearch(CachingDirectedGraphWalker.java:112)
at org.gradle.internal.graph.CachingDirectedGraphWalker.findValues(CachingDirectedGraphWalker.java:64)
at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.doResolve(CachingTaskDependencyResolveContext.java:77)
at org.gradle.api.internal.tasks.CachingTaskDependencyResolveContext.resolve(CachingTaskDependencyResolveContext.java:66)
... 83 more