Нужен ли мне файл maven-metadata-local.xml?Служит ли это для какой-либо цели?
Да, вам это нужно.
Это файл, созданный для хранения информации о различных версиях / выпусках, которые вы установили в этом локальном репо.
Например, я установил в локальном репо:
- Во-первых, выпуск 0.2.0 файла jar.
- Во-вторых, 0.1.0-SNAPSHOT.
maven-metadata-local.xml
обновляется соответственно:
$ ls -l
drwxrwxr-x. 2 4096 Jun 21 16:14 0.1.0-SNAPSHOT
drwxrwxr-x. 2 4096 Jun 21 16:12 0.2.0
-rw-rw-r--. 1 349 Jun 21 16:14 maven-metadata-local.xml
-rw-rw-r--. 1 32 Jun 21 16:14 maven-metadata-local.xml.md5
-rw-rw-r--. 1 40 Jun 21 16:14 maven-metadata-local.xml.sha1
, так что:
$ cat maven-metadata-local.xml
<?xml version="1.0" encoding="UTF-8"?>
<metadata>
[...]
<versioning>
<release>0.2.0</release>
<versions>
<version>0.2.0</version>
<version>0.1.0-SNAPSHOT</version>
</versions>
<lastUpdated>20180621151442</lastUpdated>
</versioning>
</metadata>
Нужна ли локальная частьсоответствовать идентификатору хранилища, который я использую в POM?
Нет.Он предназначен для ведения журналов (конечно, вам нужен URL-адрес действительного репо).
Downloading from this-is-my-local-repo: file:///...
Имеет ли mvn install:install-file
параметр, позволяющий указать идентификатор для использования в локальном репозитории(например, чтобы сгенерировать maven-metadata-local-repo.xml или я должен впоследствии переименовать файл?
Нет, вам не нужно переименовывать файл. Этот суффикс "-local"означает, что информация метаданных, которую он имеет, является «локальной» для этого репо.
Просто чтобы сделать это более понятным, как объяснено в http://maven.apache.org/ref/3.5.2/maven-repository-metadata/:
Имя файла метаданных:
maven-metadata.xml
в удаленном хранилище, maven-metadata-<repo-id>.xml
в локальном хранилище, для метаданных из хранилища с идентификатором репоидентификатор.
Таким образом, при выполнении установки "mvn" в локальном репо (по умолчанию в папке ./m2/repository
или в папке -DlocalRepositoryPath
), файл создаетсяmaven-metadata-local.xml
, так как это локальный репозиторий.
Аналогично, в вашем локальном репо вы можете увидеть разные maven-metadata-<repo-id>.xml
, так что вы можетесм. , в котором репо артефакт взят из (пример из моего локального репо, где у меня есть файл settings.xml, идентифицирующий центральное репо, репозиторий общего релиза, репозиторий общих снимков и т. д. ...
.m2/repository/org/apache/maven/plugins/maven-install-plugin/maven-metadata-central.xml
.m2/repository/[...]/maven-metadata-snapshots.xml
Подводя итог,
- Существует ТОЛЬКО ОДИН локальный репозиторий, поэтому нет идентификатора для его выбора в "install-file".
- ID репо предназначен для различных репо, которые могут быть у вас (например, репо для выпусков с именем «my-Releases», другое для моментальных снимков с именем «my snapshots»).
repo-id
используется при развертывании на нем артефакта:
mvn deploy -DaltDeploymentRepository=my-repo::default::file:///home/jalopaba/my-repo