Size: a a a

Kotlin Community

2020 August 10

Sergey λ in Kotlin Community
да, => @android_ru
источник

АО

Алексей Овсянников... in Kotlin Community
Алексей Овсянников
Всем привет, никто не встречался с Circular dependency between the following tasks в мультиплатформенных проектах? Конкретней ошибка тут: https://pastebin.com/skyek3F7
Нашел что-то похожее на причину:
Если положить несколько модулей, названия которых совпадают (но которые лежат в разных родительских модулях), а потом в одном из сделать api project(":full:path") (тут path - название модуля), то, видимо, градл будет считать, что текущий модуль может заменить зависимый и сделает Circular dependency between the following tasks . Мораль такова - не используйте в подмодулях одинаковые имена

Как решается:
Есть два пути. Один - просто разные названия. Другой - сделать переименование подмодулей (поменять им name) в каком-нибудь each по всем подпроектам в рутовом модуле
источник

VP

Vladimir Petrakovich in Kotlin Community
Алексей Овсянников
Нашел что-то похожее на причину:
Если положить несколько модулей, названия которых совпадают (но которые лежат в разных родительских модулях), а потом в одном из сделать api project(":full:path") (тут path - название модуля), то, видимо, градл будет считать, что текущий модуль может заменить зависимый и сделает Circular dependency between the following tasks . Мораль такова - не используйте в подмодулях одинаковые имена

Как решается:
Есть два пути. Один - просто разные названия. Другой - сделать переименование подмодулей (поменять им name) в каком-нибудь each по всем подпроектам в рутовом модуле
Я подозреваю, что правильная мораль в том, что у них должны быть разные group, чтобы они не считались одним и тем же модулем при разрешении зависимостей.
Натыкался на что-то похожее без участия мультиплатформы.
источник

АО

Алексей Овсянников... in Kotlin Community
не, у них, по-идее, полное имя должно составляться через имена родительских модулей
источник

АО

Алексей Овсянников... in Kotlin Community
в любом случае, это просто дико неочевидно - мы же не по пакету ищем, а проект передаём
источник

AN

Alexander Nozik in Kotlin Community
Алексей Овсянников
не, у них, по-идее, полное имя должно составляться через имена родительских модулей
Насколько я помню, у тебя там есть директории без build.gradle. Может в этом дело
источник

АО

Алексей Овсянников... in Kotlin Community
неа:)
источник

АО

Алексей Овсянников... in Kotlin Community
я добавлял build.gradle, добавлял пустые модули в settings.gradle, но ни то, ни другое не помогло
источник

VP

Vladimir Petrakovich in Kotlin Community
Алексей Овсянников
не, у них, по-идее, полное имя должно составляться через имена родительских модулей
Координаты модуля - это именно project.name + project.group. Поэтому возможны (очень вероятны, я бы сказал) коллизии.
источник

АО

Алексей Овсянников... in Kotlin Community
только переименования проектов
источник

АО

Алексей Овсянников... in Kotlin Community
Vladimir Petrakovich
Координаты модуля - это именно project.name + project.group. Поэтому возможны (очень вероятны, я бы сказал) коллизии.
а не наоборот? хотя не суть, я понимаю, о чем речь. Да, скорее всего так и есть
источник

АО

Алексей Овсянников... in Kotlin Community
самое противное, что пути разрешения подпроектов нельзя поправить, получается всякая фигня а-ля api project(':foo:bar:foo.bar.bar3')
источник

AO

Alexey Otts in Kotlin Community
Я бы советовал использовать вот такой паттерн :group:group-module
источник

VP

Vladimir Petrakovich in Kotlin Community
Алексей Овсянников
а не наоборот? хотя не суть, я понимаю, о чем речь. Да, скорее всего так и есть
Ну я про модуль при публикации, работе с зависимостями и вот это вот всё.
А так да, модуль в проекте идентифицируется путём. Но, видимо, эта ссылка иногда преобразуется в координаты артефакта, а потом наоборот.
источник

АО

Алексей Овсянников... in Kotlin Community
а нельзя в градле искать модули по их имени?
источник

АО

Алексей Овсянников... in Kotlin Community
ну то есть да, я могу написать такую функцию, но встроенное может что есть
источник

AN

Alexander Nozik in Kotlin Community
Алексей Овсянников
а нельзя в градле искать модули по их имени?
Можно. Я не очень понимаю, в чем проблема.
источник

VP

Vladimir Petrakovich in Kotlin Community
Alexander Nozik
Можно. Я не очень понимаю, в чем проблема.
Лёгкость выстрела в ногу
источник

AN

Alexander Nozik in Kotlin Community
Алексей Овсянников
ну то есть да, я могу написать такую функцию, но встроенное может что есть
project(":a:b")
источник

АО

Алексей Овсянников... in Kotlin Community
Alexander Nozik
Можно. Я не очень понимаю, в чем проблема.
ну :foo:bar не имя
источник