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

Вырезалка 2

7,099
324
1,509
Вас чо, сотня-другая мегабайт ресурсов задавят? :oops: :unsure:
 
Последнее редактирование:
7,099
324
1,509
исправил 👌
 
1,111
47
420
так
я провел независимое расследование по части вырезания ресурсов и могу точно сказать, что такого в вырезалке не будет
вырезать ресурсы можно средствами дефолтного градла
Gradle (Groovy):
gradle.taskGraph.whenReady {
    if (it.hasTask(buildClient)) {
        processResources {
            exclude('server')
        }
    } else if (it.hasTask(buildServer)) {
        processResources {
            exclude('client')
        }
    }
}
Все сломается если выполнить buildAll, но я думаю что нить можно придумать
 
7,099
324
1,509
А ащс по дефолту вырезалка не трогает ресурсы?
 
7,099
324
1,509
1,111
47
420
Давайте не смотреть на релиз
Он трогает ресурсы и у него нет initializeDefault
Лучше пока жить на снапшотах
 
7,099
324
1,509
На счет полей и обфускаторов: а что, если вырезалка будет вырезать после применения обфускатора?
 
7,099
324
1,509
Почему? Допустим, в конфигурации добавить параметр buildTaskName="build", который определяет зависимость таски build<Side> и если обфускатор добавляет свою таску, то поменять этот параметр
 
7,099
324
1,509
Можно ли как-нить поменять имя выходной банки, не меняя имени таски?
У мя щас версия - бета и не очень, если в имени "release"
1583683314579.png

Чтобы было че-то типо того
Gradle (Groovy):
 builds {

        release {
            
            jarAdditionName="non release"

            targetSides = [releaseSide]

            primalSides = [releaseSide, debugSide]

        }

        debug {
        
            //jarAdditionName="debug" as default

            targetSides = [debugSide]

            primalSides = [debugSide, releaseSide]

        }

    }
 
1,111
47
420
Почему? Допустим, в конфигурации добавить параметр buildTaskName="build", который определяет зависимость таски build<Side> и если обфускатор добавляет свою таску, то поменять этот параметр
Отвратительно. Подход создания багов и последующих их обходов мне не нравится. Хочу чтоб вырезалка вырезала все достаточно прозрачно и не создавала гадостей.

Я понял, что никому не нравится делать лямбды. Я работаю над тем что бы заменить лямбды на такие штуки как

Java:
if (!world.isRemote) {
    // Will be removed in client build
} else {
    // Will be removed in server build
}

Это конечно не супер магическое вырезание инициализации полей, но хотя бы не придется анализировать стек, а значит не придется писать тесты для нескольких тысяч разных вариаций стека.
 
1,111
47
420
Можно ли как-нить поменять имя выходной банки, не меняя имени таски?
У мя щас версия - бета и не очень, если в имени "release"
Посмотреть вложение 7777

Чтобы было че-то типо того
Gradle (Groovy):
 builds {

        release {
           
            jarAdditionName="non release"

            targetSides = [releaseSide]

            primalSides = [releaseSide, debugSide]

        }

        debug {
       
            //jarAdditionName="debug" as default

            targetSides = [debugSide]

            primalSides = [debugSide, releaseSide]

        }

    }
Нельзя, но звучит как классная фича. Завезу.
 
1,111
47
420
Так. Произошел переход от версии 2.0.1 на версию 2.1.0. 2.0.1 все еще лежит в снапшотах, но через пару дней уже буду публиковать ее в мавен централ.

В версии 2.1.0 добавил валидацию. Это значит, что вырезалка во время билда будет проверять, что вы не дергаете клиентский код из серверного и серверный из клиентского. Порой такие ошибки случаются.
По дефолту валидация включена, чтобы отключить ее, нужно прописать cutter.validation = false. Так же существует возможность отключить валидацию для метода/класса/поля. Делается это опять же с помощью аннотации. Изначально таковая аннотация не задана и в дефолтной конфигцрации ее не будет, ибо мне не очень нравится идея ее существования, но если кому-нибудь понадобится, милости просим тык.

Также исправил поведение конфигурации вырезалки, чтобы оно соответствовало навязываемым стандартам градла. Это значит, что сейчас конфигурация вступает в силу только в момент выполнения самого таска. То есть, она ленива.

Также добавил возможность задавать имя выходным жарникам для каждого билда отдельно. Примерно вот так cutter.builds.server.archiveName = 'example.jar'. Ну понятно что в блоке конфигурации билда можно прописать archiveName = 'example.jar'.
 
Последнее редактирование:
1,111
47
420
Нет, но в планах есть, но только после многопоточности и эвристики.
 
7,099
324
1,509
Примерно вот так cutter.builds.server.archiveName = 'example.jar'. Ну понятно что в блоке конфигурации билда можно прописать archiveName = 'example.jar'
А как на счет того, что имя банки обычно формируется из версии и номера билда?
 
1,111
47
420
archiveName = archiveBaseName + '-' + version + '.jar'
 
Последнее редактирование:

will0376

Токсичная личность
2,059
55
573
В своих проектах(1.12.2) использую первую версию, со своим костылём, о котором раньше говорил(не найду).
вопросы:
1.12.2 пашет?
Стоит ли обновление свеч?(стоит. Валидация жутко нужная хреновина.)
 
Сверху