Как я могу поделиться своими внешними аннотациями для зависимостей, используемых в проекте Android, через VCS?
Для моей задачи на работе (устранение жестко закодированных строковых предупреждений) я хочу поделиться не только аннотациями @NonNls, которые я добавляю внутри нашего проекта, но и внешними аннотациями, которые я добавляю с помощью «Добавить внешнюю аннотацию» в Android Studio, чтобы мои коллеги не были засыпан бесполезными предупреждениями, как будто я только начинал этот проект.
Отключение этого типа аннотаций в целом не решает мою проблему, поскольку я хочу продолжать видеть полезные предупреждения этого типа. Кроме того, обычная функциональность выбора папки где-то в моей файловой системе для сохранения там внешних аннотаций в древовидной структуре также недостаточно хороша, потому что моим коллегам все равно придется указывать Android Studio на эту папку для каждого класса/ метод, для которого они хотят игнорировать конкретное предупреждение.
Я уже пытался добавить файл «external_annotations.xml» в res/xml, например, со следующим содержимым:
<root>
<item name='android.util.Log'>
<annotation name='org.jetbrains.annotations.NonNls' />
</item>
<item name='androidx.fragment.app.DialogFragment void show(androidx.fragment.app.FragmentManager, java.lang.String) 1'>
<annotation name='org.jetbrains.annotations.NonNls' />
</item>
<item name='com.android.volley.VolleyLog'>
<annotation name='org.jetbrains.annotations.NonNls' />
</item>
<item name='com.appsflyer.AppsFlyerLib void logEvent(android.content.Context, java.lang.String, java.util.Map<java.lang.String,java.lang.Object>)'>
<annotation name='org.jetbrains.annotations.NonNls' />
</item>
<item name='com.google.firebase.crashlytics.FirebaseCrashlytics void log(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NonNls' />
</item>
<item name='com.mixpanel.android.mpmetrics.MixpanelAPI void track(java.lang.String)'>
<annotation name='org.jetbrains.annotations.NonNls' />
</item>
</root>
и упомянул об этом в моем build.gradle(:app):
[...]
android {
[...]
lintOptions {
lintConfig file("${project.rootDir}/app/src/main/res/xml/external_annotations.xml")
}
}
[...]
Но, к сожалению, это не дало никакого эффекта (даже после аннулирования кешей и перезапуска).