Подключение сторонних библиотек в проект

Версия Minecraft
1.7.10

Sainthozier

Стрелочник
623
11
369
Всем привет.

Да, знаю, что таких вопросов было уже море, да и я в инете нашёл много информации, но она абсолютно хаотична. Не могу понять как же именно следует подключать сторонние библиотеки к проекту. Мнения расходятся.
Например, хочу подключить апи таумкрафта, ботании и баблс. Некоторые говорят юзать maven, некоторые советуют закинуть в libs/ джарники и сверху ещё chickencore + chickenlib, а некоторое советуют проделать тоже самое, но в eclipse/mods/. Ну и ещё были советы просто закинуть в те же директории dev версии необходимых библиотек и модов.
К тому же я видел несколько сообщений на форумах о том, что таскать с собой все апишки - плохая практика. То есть разрабатывать со всем набором, а в билде только один мод.

И ещё, я так понимаю, что работать с апи модов и просто добавить сторонний мод чисто для теста - 2 разные вещи. Так ли это? Например, я добавил к себе апи таумкрафта и сам таумкрафт с чикенлибами в eclipse/mods/, а эклипс ругается на апи, мол все классы уже имеются.

В итоге у меня возникло несколько вопросов:
1. Как же всё-таки правильно добавить стороннюю библиотеку, классы и методы которой, я буду использовать в своём моде? И если нужно юзать maven, а необходимой библиотеки в репозитории нет, то как тогда быть?
2. Как правильно добавить обыкновенный мод, который мне не пригодится в разработке?
3. Если всё же таскать с собой все заюзанные апишки - плохой тон, то как избавиться от них на этапе сборки, сохранив работоспособность мода?

Если не затруднит, буду рад увидеть порядок правильных действий, дабы добавить тему себе в закладки и вдруг что - сразу смотреть сюда, не задавая впредь глупых вопросов )
 
Решение
1. Я всегда просто кидаю в папочку libs все нужно + CodeChickenCore и потом подключаю их как обычные либы в эклипсе.
2. Тоже самое и если нужен обычный мод.
3. Есть аннотация у форджа - Optional. Чтобы юзать интерфейсы из апишек. Фордж их потом просто вырезает если данный мод не установлен, то бишь краша не будет.

tox1cozZ

aka Agravaine
8,455
598
2,892
1. Я всегда просто кидаю в папочку libs все нужно + CodeChickenCore и потом подключаю их как обычные либы в эклипсе.
2. Тоже самое и если нужен обычный мод.
3. Есть аннотация у форджа - Optional. Чтобы юзать интерфейсы из апишек. Фордж их потом просто вырезает если данный мод не установлен, то бишь краша не будет.
 

Sainthozier

Стрелочник
623
11
369
Спасибо за инфу )
Ещё немного поискал в инете и наткнулся прям на то, что нужно - этот видос.
Кому лень смотреть, то автор утверждает, что таких строчек в build.gradle:
Gradle (Groovy):
sourceSets {
    main {
        java {
            srcDir 'src/main/java'
        }
        resources {
            srcDir 'src/main/resources'
        }
    }
   
    api {
        java {
            srcDir 'src/api'
        }
    }
}
будет достаточно для того, чтобы на этапе сборки отсечь заюзанные апишки в директории src/api, т.е. мод будет чистым. В качестве примера автор заюзал thaumcraft api. Пользуется ли кто этим? Я просто подобное нигде не видел, когда искал ответ на свой вопрос. Это устаревшее что-то?

UPD.
Вроде бы разобрался. А по поводу проблемы с использованием таумкрафт апи и самого таума(эклипс ругается, что классы уже имеются такие), то я просто почему-то выполнил команду setupDecompworkspace после того, как закинул джарник в eclipse/mods/. Сам хз зачем )
 
Последнее редактирование:
Сверху