Ответ 1
Вы можете использовать плагин maven-publish для публикации ваших артефактов в любом репозитории, к которому у вас есть доступ. Я использую его в сочетании с Amazon S3. Репозиторий может быть вашим местным maven-репо (каталог .m2), локальным Artifactory, Archiva или любым другим сервером репозитория maven или размещенным решением. S3 работает хорошо, и я уверен, что там размещены Artifactories и т.д. Там.
Если вы используете внешний репозиторий, добавьте его в раздел репозиториев, но просто используя плагин, вы должны выбрать публикацию на локальном maven. Задача gradle называется publishToMavenLocal. Вы должны определить свою публикацию. Публикация - это просто набор артефактов, созданных вашей сборкой, в вашем случае это, вероятно, будет банкой, но это может быть что угодно. Короткий пример, как использовать его с S3.
apply plugin: 'maven'
apply plugin: 'java'
apply plugin: 'maven-publish'
repositories {
maven {
name "s3Repo"
url "your S3 URL"
credentials(AwsCredentials) {
accessKey awsAccessKey
secretKey awsSecretKey
}
}
maven {
... any other repo here
}
}
publishing {
publications {
maven(MavenPublication) {
artifactId 'artifact that you want'
from components.java
artifact distZip {
... example artifact created from zip distribution
}
}
}
repositories {
add "s3Repo"
}
}
Публикация → репозитории → добавление - это место, где вы указываете все репозитории, где вы хотите загрузить свои архивы.
Если вы хотите использовать библиотеку из своего локального maven, просто добавьте:
repositories {
...
mavenLocal()
...
}
И затем обратитесь к своему lib как к любой другой зависимости с идентификатором группы, идентификатором и версией артефакта.
Насколько я знаю, обфусканные библиотеки такие же, как и не обфускации, только с измененными именами идентификаторов. Если требование заключается в публикации обфускационной библиотеки, это должно быть хорошо. Просто не обфускайте интерфейсы API и классы (точки входа). Если вы публикуете библиотеку, отличную от обфускации, я не уверен, запутан ли она в финальном архиве.