Иконка ресурса

Автоматическая Деобфускация Зависимостей 1.1

Нет прав для скачивания
29
20
Workbench61 добавил(а) новый ресурс:

Автоматическая Деобфускация Зависимостей - деобфусцирует зависимости как в ForgeGradle-3

Gradle плагин для работы вместе с ForgeGradle.
Добавляет аналог fg.deobf для старых версий (проверено только на 1.7.10)
Деобфусцирует зависимости как FG-3 используя BON2. Использует маппинги указанные в блоке minecraft, если таковы не указаны используются стандартные маппинги для обозначенной версии форджа.
Загрузите плагин по ссылке либо с гитхаба и добавьте его в блоке
Gradle (Groovy):
buildscript {
    dependencies {
        classpath files('path/to/plugin.jar')
    }
}
применить плагин после форджа
Gradle (Groovy):
apply plugin: 'forge'
apply plugin: 'muwafg'
можно подключать зависимости
Gradle (Groovy):
dependencies {
    compile muwafgdep.deobf('group:name:version')
    compile muwafgdep.deobf('group:name:version', {/* configuration */})
}
Зависимости будут деобфусцированны автоматически после перезагрузки проекта.

Узнать больше об этом ресурсе...
 
Последнее редактирование:
29
20
Ты понимаешь что это все описание данного софта? Если тебе из этого не понятно что он делате то это твоя проблема. Ты либо никогда не работал с fg-3 либо никогда не подключал другие моды как зависимости либо вообще не знаешь что такое srg2source.
 
1,194
28
278
что это все описание данного софта?
а где я про описание говорил?
либо никогда не подключал другие моды
да... не подключал... 1602425988655.png
Если тебе из этого не понятно что он делате то это твоя проблема
Ну вообще-то нет. Ибо это твоя статья для других кодеров, и будь уж добр оформить по красоте.

Почему я могу зайти на ту же статью про пакеты ElegantNetworking - максимально изящная пакетная система и сразу пойму что это такое, как использовать, как устанавливать?
 
29
20
видимо потому что это другой уровень.... в любом случае, если что не понятно, спрашивай, постараюсь ответить.
 
Последнее редактирование:
6,095
226
1,174
Просто нужно делать статьи более дружественными к пользователю.
Например, написать в статье на русском то же, что и в readme.md в репозитории.
Ещё стоит явно сказать, что это аналог fg.deobf из новых версий mdk(ведь так?)

Насколько эта штука эквивалентна CodeChickenCore? На старых версиях этот мод можно добавить в сборку, чтобы он деобфнул моды в сборке.
 
29
20
Спасибо за комментарий, доработаю описание.
Да это действительно аналог fg.deobf.
Про то что CodeChickenCore деобфусцирует моды слышу впервые, у меня мало опыта работы со старыми версиями. Потому не могу сказать на сколько она эквивалентна. Могу сказать только что она автоматически перегоняет зависимости в проекте согласно его маппингам.
 
29
20
Workbench61 обновил(а) ресурс Автоматическая Деобфускация Зависимостей новой записью:

Автоматическая декомпиляция и исправления

Переделан алгоритм обработки зависимостей.
Добавлена поддержка curse.maven зависимостей.
Зависимости, имеющие группу curse.maven, будут ее лишены, чтобы этого избежать, передайте true в методе.
Gradle (Groovy):
muwafgdep.deobf('curse.maven:name:123', true)
muwafgdep.deobf('curse.maven:name:123', true, {/* configuration */})
Релизы теперь доступны из maven репозитория на гитхабе yopoyka/maven
Gradle (Groovy):
buildscript {
    repositories {
        maven {
            url = 'https://github.com/yopoyka/maven/raw/maven'
        }
    }
    dependencies {
        classpath 'muwa.forgegradle:muwafg:1.+'
    }
}

apply plugin: 'forge'
apply plugin: 'muwafg'

Очень простая автоматическая декомпиляция используя ForgeFlower.
muwafgdep.decompile(false) чтобы отключить данный функционал.

Узнать больше об этом обновлении...
 
Последнее редактирование:
6,095
226
1,174
Что такое "curse.maven"?
 
29
20
позволяет автоматически подключать файлы с https://www.curseforge.com как зависимости.
Раньше он являлся gradle плагином, но теперь достаточно добавить сайт как репозиторий.
Gradle (Groovy):
repositories {
    maven {
        url = "https://www.cursemaven.com"
    }
}
На пример, если я хочу добавить witchery в свой проект я могу перейти на curseforge, выбрать файл и взять значение последнего сегмента адреса https://www.curseforge.com/minecraft/mc-mods/witchery/files/2234410 , в данном случае это 2234410. Теперь в блоке зависимостей добавляем
Gradle (Groovy):
dependencies {
    compile 'curse.maven:название-на-наш-вкус:2234410'
}
Теперь любые зависимости с группой curse.maven будут резолвиться этим репозиторием.

В моем случае проблема была в том, что я меняю имя обфусцированной зависимости на "deobf_{mappings}_{оригинальное имя}", но так как cursemaven интересует только группа и цифровое значение, он отвечал на запрос 'deobf_mappings_name' и мой локальный репозиторий с деобфусцированным файлом пропускался. Все что мне пришло в голову это просто удалять группу у деобфусцируемых curse.maven зависимостей, скорее всего возможно как-то поднять приоритет моего локального репозитория, но это уже в другой раз.
 
1,174
39
261
Тут проблема появилась. Тут не видит твой плагин:
build.gradle:
buildscript {
    repositories {
        mavenCentral()
        maven {
            name = "forge"
            url = "https://files.minecraftforge.net/maven"
        }
        maven {
            name = "sonatype"
            url = "https://oss.sonatype.org/content/repositories/snapshots/"
        }
        maven {
            url = 'https://github.com/yopoyka/maven/raw/maven'
        }
    }
    dependencies {
        classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
        classpath 'muwa.forgegradle:muwafg:1.+'
    }
}

apply plugin: 'forge'
apply plugin: 'muwafg'

version = "1.0"
group= "com.yourname.modid" // https://maven.apache.org/guides/mini/guide-naming-conventions.html
archivesBaseName = "modid"

minecraft {
    mappings = 'stable_12'
    version = "1.7.10-10.13.4.1614-1.7.10"
    runDir = "eclipse"
}
repositories {
    mavenCentral()
    maven {
        name = "bdew"
        url = "http://jenkins.bdew.net/maven"
    }
    maven {
        name = "chickenbones"
        url = "http://chickenbones.net/maven"
    }
    maven {
        name "waila"
        url "http://mobiusstrip.eu/maven"
    }
    maven {
        url = "https://www.cursemaven.com"
    }
    maven {
        name = "ic2"
        url = "http://maven.ic2.player.to/"
    }
}
dependencies {
    compile "codechicken:NotEnoughItems:1.7.10-1.0.5.118:dev"
    compile "codechicken:CodeChickenLib:1.7.10-1.1.3.140:dev"
    compile "codechicken:CodeChickenCore:1.7.10-1.0.7.47:dev"
    compile "net.industrial-craft:industrialcraft-2:2.2.828-experimental:dev"
    compile muwafgdep.deobf('libs/AdvancedSolarPanel-1.7.10-3.5.1(1).jar')
}

processResources
{
    // this will ensure that this task is redone when the versions change.
    inputs.property "version", project.version
    inputs.property "mcversion", project.minecraft.version

    // replace stuff in mcmod.info, nothing else
    from(sourceSets.main.resources.srcDirs) {
        include 'mcmod.info'
                
        // replace version and mcversion
        expand 'version':project.version, 'mcversion':project.minecraft.version
    }
        
    // copy everything else, thats not the mcmod.info
    from(sourceSets.main.resources.srcDirs) {
        exclude 'mcmod.info'
    }
}
Java:
FAILURE: Build failed with an exception.

* Where:
Build file 'C:\panels\build.gradle' line: 30

* What went wrong:
A problem occurred evaluating root project 'panels'.
> org.gradle.api.artifacts.repositories.MavenArtifactRepository.setUrl(Ljava/net/URI;)V

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

* Exception is:
org.gradle.api.GradleScriptException: A problem occurred evaluating root project 'panels'.
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:92)
    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl$2.run(DefaultScriptPluginFactory.java:177)
    at org.gradle.configuration.ProjectScriptTarget.addConfiguration(ProjectScriptTarget.java:77)
    at org.gradle.configuration.DefaultScriptPluginFactory$ScriptPluginImpl.apply(DefaultScriptPluginFactory.java:182)
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:38)
    at org.gradle.configuration.project.BuildScriptProcessor.execute(BuildScriptProcessor.java:25)
    at org.gradle.configuration.project.ConfigureActionsProjectEvaluator.evaluate(ConfigureActionsProjectEvaluator.java:34)
    at org.gradle.configuration.project.LifecycleProjectEvaluator.evaluate(LifecycleProjectEvaluator.java:55)
    at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:573)
    at org.gradle.api.internal.project.DefaultProject.evaluate(DefaultProject.java:125)
    at org.gradle.execution.TaskPathProjectEvaluator.configureHierarchy(TaskPathProjectEvaluator.java:42)
    at org.gradle.configuration.DefaultBuildConfigurer.configure(DefaultBuildConfigurer.java:38)
    at org.gradle.initialization.DefaultGradleLauncher$2.run(DefaultGradleLauncher.java:124)
    at org.gradle.internal.Factories$1.create(Factories.java:22)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
    at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:121)
    at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
    at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98)
    at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
    at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92)
    at org.gradle.initialization.DefaultGradleLauncher.getBuildAnalysis(DefaultGradleLauncher.java:88)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.configure(InProcessBuildActionExecuter.java:102)
    at org.gradle.tooling.internal.provider.runner.ClientProvidedBuildActionRunner.run(ClientProvidedBuildActionRunner.java:45)
    at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    at org.gradle.tooling.internal.provider.runner.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:58)
    at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:43)
    at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:28)
    at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:82)
    at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:49)
    at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:59)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:49)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    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:120)
    at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.HintGCAfterBuild.execute(HintGCAfterBuild.java:44)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
    at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
    at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:240)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
    at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
Caused by: java.lang.NoSuchMethodError: org.gradle.api.artifacts.repositories.MavenArtifactRepository.setUrl(Ljava/net/URI;)V
    at muwa.forgegradle.legacysupport.LegacyExtension.lambda$apply$0(LegacyExtension.java:21)
    at org.gradle.api.internal.artifacts.DefaultArtifactRepositoryContainer.addRepository(DefaultArtifactRepositoryContainer.java:87)
    at org.gradle.api.internal.artifacts.dsl.DefaultRepositoryHandler.maven(DefaultRepositoryHandler.java:89)
    at muwa.forgegradle.legacysupport.LegacyExtension.apply(LegacyExtension.java:20)
    at muwa.forgegradle.MuwaFG.apply(MuwaFG.java:32)
    at muwa.forgegradle.MuwaFG.apply(MuwaFG.java:17)
    at org.gradle.api.internal.plugins.ImperativeOnlyPluginApplicator.applyImperative(ImperativeOnlyPluginApplicator.java:35)
    at org.gradle.api.internal.plugins.RuleBasedPluginApplicator.applyImperative(RuleBasedPluginApplicator.java:43)
    at org.gradle.api.internal.plugins.DefaultPluginManager.doApply(DefaultPluginManager.java:139)
    at org.gradle.api.internal.plugins.DefaultPluginManager.apply(DefaultPluginManager.java:112)
    at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.applyType(DefaultObjectConfigurationAction.java:113)
    at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.access$200(DefaultObjectConfigurationAction.java:36)
    at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction$3.run(DefaultObjectConfigurationAction.java:80)
    at org.gradle.api.internal.plugins.DefaultObjectConfigurationAction.execute(DefaultObjectConfigurationAction.java:136)
    at org.gradle.api.internal.project.AbstractPluginAware.apply(AbstractPluginAware.java:44)
    at org.gradle.api.internal.project.ProjectScript.apply(ProjectScript.java:34)
    at org.gradle.api.Script$apply.callCurrent(Unknown Source)
    at build_buo0c8cy81equz0wo0w8bgnxs.run(C:\panels\build.gradle:30)
    at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:90)
    ... 60 more


CONFIGURE FAILED

Total time: 0.372 secs
 
29
20
Я дико извиняюсь. Этот плагин уже успел устареть. Его концепция оказалать ненадежной и развиваться не будет. Его место займет другой плагин с более прочной структурой и дополнительным функционалом. Когда он будет в релизе я напишу сюда.
 
29
20
 
Сверху