Gradle имеет широко распространенное соглашение о том, что свойства коллекции могут быть настроены с помощью методов с одинаковыми именами.Основное различие между установкой свойства с использованием присваивания (=
) и использования метода заключается в том, что последний добавляет его значения.
Таким образом, для переопределения исходного каталога по умолчанию для исходного наборавам нужно использовать присваивание:
sourceSets {
ps {
proto {
srcDirs = ['ps/proto']
}
}
}
Я не совсем понимаю, почему вы получаете сообщение об ошибке src / src / ps / proto , поэтому могут быть некоторые другиевопрос.Эта ошибка, похоже, исходит от protoc
, а не от Gradle.
РЕДАКТИРОВАТЬ
Чтобы решить проблему с импортом, вы должны использовать
import security.proto;
т.е. без пути к исходному каталогу.Это связано с тем, что подключаемый модуль Protobuf Gradle добавляет каждый исходный каталог в качестве «включаемого каталога».protoc
только выглядит в таких каталогах для импорта.
Это, по крайней мере, то, что я извлек из документации и исходного кода.