gradle с Java: когда создается папка .m2 при использовании gradle с Java - PullRequest
0 голосов
/ 22 апреля 2020
  1. Здесь я понимаю, что зависимости загружаются из репозитория maven. И интересно, будет ли создана папка .m2, когда я выполню это. или это будет работать без создания локального репозитория .m2. Я читал, что локальный репо нужен только для maven, а не для класса. Таким образом, в этом случае, когда Gradle используется для доступа к maven repo для загрузки зависимостей, нужна ли папка .m2.
  2. Когда создается эта папка .m2?
  3. После успешной сборки Gradle Я зарегистрировался в {user home}, но нет созданных .m2
  4. Я попытался получить информацию от Google, но не получил ясности по этому поводу. запутался, как Gradle использует .m2 при создании своего проекта.
 apply plugin: 'eclipse'
 apply plugin: 'maven'
 apply plugin: 'idea'
 apply plugin: 'groovy'

 sourceCompatibility = JavaVersion.VERSION_1_8
 targetCompatibility = JavaVersion.VERSION_1_8

 //Artifactory Central Repository
 buildscript {
     repositories {
         maven {
             url 'abc'
             credentials {
                 username = ""
                 password = ""
             }

1 Ответ

2 голосов
/ 24 апреля 2020

Gradle Dependency Cache

Gradle использует свой собственный кэш зависимостей :

Gradle содержит очень сложный механизм кэширования зависимостей, который стремится минимизировать количество удаленные запросы, сделанные в разрешении зависимостей, при этом гарантируя, что результаты разрешения зависимостей являются правильными и воспроизводимыми.

Кэш зависимостей Gradle состоит из двух типов хранения, расположенных в GRADLE_USER_HOME/caches:

  • Файловое хранилище загруженных артефактов, включая двоичные файлы, такие как jars, а также необработанные загруженные метаданные, такие как файлы POM и файлы Ivy. Путь к хранилищу для загруженного артефакта включает контрольную сумму SHA1, что означает, что 2 артефакта с одинаковым именем, но разным содержимым могут быть легко кэшированы.
  • Бинарное хранилище метаданных разрешенного модуля, включая результаты разрешения динамически c версии, дескрипторы модулей и артефакты.

[...]

Где, как задокументировано здесь , GRADLE_USER_HOME is:

Домашний каталог пользователя Gradle (по умолчанию $USER_HOME/.gradle) используется для хранения глобальных свойств конфигурации и сценариев инициализации, а также кэшей и файлов журналов. [...]


Локальный репозиторий Maven

Вы можете настроить Gradle на поиск вашего локального Maven хранилище :

[...]

Чтобы объявить локальный кэш Maven в качестве хранилища, добавьте его в сценарий сборки:

Пример 8. Добавление локального кэша Maven в качестве хранилища

repositories {
    mavenLocal() 
}

Gradle использует тот же лог c, что и Maven, для определения местоположения вашего локального кэша Maven. Если локальное хранилище определено в settings.xml, это местоположение будет использоваться. settings.xml в USER_HOME/.m2 имеет приоритет над settings.xml в M2_HOME/conf. Если нет settings.xml, Gradle использует местоположение по умолчанию USER_HOME/.m2/repository.

Обратите внимание, однако, что Gradle предостерегает от с использованием локального репозитория Maven, если он вам действительно не нужен .

С помощью плагина maven-publi sh вы можете publi sh в свой локальный репозиторий Maven , при необходимости:

Для интеграции с локальной установкой Maven иногда полезно опубликовать sh модуль в локальном репозитории Maven (обычно в $ USER_HOME / .m2 / repository ) вместе с его файлом POM и другие метаданные. На языке Maven это называется «установкой» модуля.

Плагин Maven Publi sh позволяет легко это сделать, автоматически создавая задачу PublishToMavenLocal для каждого MavenPublication в * 1084. * контейнер. Имя задачи следует шаблону publishubNamePublicationToMavenLocal. Каждая из этих задач связана с общей задачей publishToMavenLocal. Вам не нужно иметь mavenLocal() в разделе publishing.repositories.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...