Вопрос Вес плагина при билде через gradle

Статус
В этой теме нельзя размещать новые ответы.

Айсон :)

Разработчик
Пользователь
Сообщения
456
Решения
19
Билдил плагин через Maven - весил 34КБ, решил попробовать через Gradle - 516КБ. Из-за чего такая огромная разница?
 
Билдил плагин через Maven - весил 34КБ, решил попробовать через Gradle - 516КБ. Из-за чего такая огромная разница?
Открой через вин рар да посмотри что тебе туда градл запихнул :unsure:
 
Как в мавен так и в градл есть файлы с настройками, где можно указать библиотеки, какие будут попадать в джарник при компиляции
При компиляции мавен у тебя либо не указаны библиотеки, либо указаны неверно, либо ты компилируешь через пустые артефакты (Часто новички совершают такую ошибку)
Поэтому при мавен компиляции этих библиотек нет в джарнике, а в градл они есть
 
Как в мавен так и в градл есть файлы с настройками, где можно указать библиотеки, какие будут попадать в джарник при компиляции
При компиляции мавен у тебя либо не указаны библиотеки, либо указаны неверно, либо ты компилируешь через пустые артефакты (Часто новички совершают такую ошибку)
Ну во первых я уже выпустил 3 версии плагина. До этого, когда я компилировал через maven у меня всё прекрасно работало, и вес был небольшой. Сейчас решил перейти на gradle - в 15 раз больше вес
 
До этого, когда я компилировал через maven у меня всё прекрасно работало, и вес был небольшой.
Плагин может работать и без библиотек, ты мог указать зависимости и не использовать их
Либо классы библиотек, которые необходимы для работы плагина, находятся в других плагинах (Тогда твой плагин будет выбрасывать варнинг в консоли, что твой плагин использует классы другого плагина)
 
Ну во первых я уже выпустил 3 версии плагина. До этого, когда я компилировал через maven у меня всё прекрасно работало, и вес был небольшой. Сейчас решил перейти на gradle - в 15 раз больше вес
А, ну а еще: при компиляции plugin.yml не попадает в джарник (опять же только если через gradle)
Объединено

Плагин может работать и без библиотек, ты мог указать зависимости и не использовать их
Либо классы библиотек, которые необходимы для работы плагина, находятся в других плагинах (Тогда твой плагин будет выбрасывать варнинг в консоли, что твой плагин использует классы другого плагина)
Код:
plugins {
    id 'java'
}

group = 'me.itzisonn_'
version = '1.4'

repositories {
    mavenCentral()
    maven {
        name = "papermc-repo"
        url = "https://repo.papermc.io/repository/maven-public/"
    }
    maven {
        name = "sonatype"
        url = "https://oss.sonatype.org/content/groups/public/"
    }
    maven {
        url = 'https://repo.extendedclip.com/content/repositories/placeholderapi/'
    }
}

dependencies {
    compileOnly "io.papermc.paper:paper-api:1.19.4-R0.1-SNAPSHOT"
    implementation 'space.arim.dazzleconf:dazzleconf-ext-snakeyaml:1.3.0-M2'
    compileOnly 'me.clip:placeholderapi:2.11.2'
}

def targetJavaVersion = 17
java {
    def javaVersion = JavaVersion.toVersion(targetJavaVersion)
    sourceCompatibility = javaVersion
    targetCompatibility = javaVersion
    if (JavaVersion.current() < javaVersion) {
        toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion)
    }
}

tasks.withType(JavaCompile).configureEach {
    if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) {
        options.release = targetJavaVersion
    }
}

processResources {
    def props = [version: version]
    inputs.properties props
    filteringCharset 'UTF-8'
    filesMatching('plugin.yml') {
        expand props
    }
}
Вот build.grale, если что
 
Тогда ты с помощью мавен компилируешь неверно, либо в pom.xml не указаны необходимые настройки
Код:
<build>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>
    </resource>
  </resources>
</build>
 
Тогда ты с помощью мавен компилируешь неверно, либо в pom.xml не указаны необходимые настройки
Код:
<build>
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <filtering>true</filtering>
    </resource>
  </resources>
</build>
Я так и не понял: какой нормальный вес: у maven или у gradle? И это в maven у меня написано
 
Если у тебя указаны зависимости, классы которых необходимо импортировать в джарник твоего плагина, то вес должен быть больше
Если у тебя таких зависимостей нет, то вес должен быть меньше

А лучше изучить настройки pom.xml или build.gradle, как минимум использовать relocation, чтобы не было конфликтов с другими плагинами
 
Если у тебя указаны зависимости, классы которых необходимо импортировать в джарник твоего плагина, то вес должен быть больше
Если у тебя таких зависимостей нет, то вес должен быть меньше

А лучше изучить настройки pom.xml или build.gradle, как минимум использовать relocation, чтобы не было конфликтов с другими плагинами
А как понять, какие надо импортировать, а какие нет?
 
Пример: DecentHolograms ставится вместе со всеми плагинами, указываешь зависимость, но импортировать классы голограмм в твой плагин не нужно
Либо же ты используешь какую-нибудь библиотеку, тот же MiniMessage, либо Hikari, это не отдельные плагины, а как дополнения для твоего плагина, их классы уже нужно импортировать в твой плагин
 
Пример: DecentHolograms ставится вместе со всеми плагинами, указываешь зависимость, но импортировать классы голограмм в твой плагин не нужно
Либо же ты используешь какую-нибудь библиотеку, тот же MiniMessage, либо Hikari, это не отдельные плагины, а как дополнения для твоего плагина, их классы уже нужно импортировать в твой плагин
Ну по описанию у меня вроде всё правильно стоит
Объединено

У меня в gradle какая проблема: что не добавляетя plugin.yml. Я с maven перехожу на него.
Объединено

У меня видимо с maven неправильно импортировалось - поэтому мало весило
 
Ну пишут же, что круче он… Или в этом нет смысла?
Если вы не понимаете реально практический смысл от инструменты и его плюсы(и минусы) - не используйте его. Я всегда использовал Maven. У него есть плюсы, есть минусы, но мне просто на нем уже исторически удобней, а какая-то "крутость" не имеет значения - я для себя всё разрабатываю, делаю удобным для себя образом.
 
Если вы не понимаете реально практический смысл от инструменты и его плюсы(и минусы) - не используйте его. Я всегда использовал Maven. У него есть плюсы, есть минусы, но мне просто на нем уже исторически удобней, а какая-то "крутость" не имеет значения - я для себя всё разрабатываю, делаю удобным для себя образом.
Хорошо, что я оставил экземпляр проекта с maven
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу