2016-05-12 9 views
0

У меня возникла проблема с Maven, не учитывая значение <localRepository> в файле settings.xml моего пользователя.Maven игнорирует параметр localRepository в настройках пользователя.xml

Мое окружение - это бродячий экземпляр, созданный с использованием шеф-повара. Я установил Maven с помощью Chef Maven cookbook.

Maven работает нормально за исключением того, что она игнорирует локальный репозиторий я определен в settings.xml пользователя SSH, за исключением:

[email protected]:/vagrant$ cat ~/.m2/settings.xml 
<?xml version="1.0" encoding="UTF-8"?> 

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd"> 

    <localRepository>/vagrant/.m2/repository</localRepository> 

</settings> 

Как вы можете видеть, я пытаюсь разделить локальный репозиторий между Хост ОС и гостевой ОС путем размещения Maven Local Repository как подкаталог в папке, которая совместно хостовой ОС и гостевой ОС: /vagrant/.m2/repository

Однако, когда я бегу Maven с включенной опцией отладки: mvn -X Maven сообщает мне, что он правильно читает файл settings.xml, но для некоторых причина не установлена ​​в локальный репозиторий правильно:

[email protected]:/vagrant$ mvn -X 
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T16:41:47+00:00) 
Maven home: /usr/local/maven 
Java version: 1.8.0_65, vendor: Oracle Corporation 
Java home: /usr/lib/jvm/jdk1.8.0_65/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux", version: "3.13.0-85-generic", arch: "amd64", family: "unix" 
[DEBUG] Created new class realm maven.api 
[DEBUG] Importing foreign packages into class realm maven.api 
[DEBUG] Imported: javax.enterprise.inject.* < plexus.core 
[DEBUG] Imported: javax.enterprise.util.* < plexus.core 
[DEBUG] Imported: javax.inject.* < plexus.core 
[DEBUG] Imported: org.apache.maven.* < plexus.core 
[DEBUG] Imported: org.apache.maven.artifact < plexus.core 
[DEBUG] Imported: org.apache.maven.classrealm < plexus.core 
[DEBUG] Imported: org.apache.maven.cli < plexus.core 
[DEBUG] Imported: org.apache.maven.configuration < plexus.core 
[DEBUG] Imported: org.apache.maven.exception < plexus.core 
[DEBUG] Imported: org.apache.maven.execution < plexus.core 
[DEBUG] Imported: org.apache.maven.execution.scope < plexus.core 
[DEBUG] Imported: org.apache.maven.lifecycle < plexus.core 
[DEBUG] Imported: org.apache.maven.model < plexus.core 
[DEBUG] Imported: org.apache.maven.monitor < plexus.core 
[DEBUG] Imported: org.apache.maven.plugin < plexus.core 
[DEBUG] Imported: org.apache.maven.profiles < plexus.core 
[DEBUG] Imported: org.apache.maven.project < plexus.core 
[DEBUG] Imported: org.apache.maven.reporting < plexus.core 
[DEBUG] Imported: org.apache.maven.repository < plexus.core 
[DEBUG] Imported: org.apache.maven.rtinfo < plexus.core 
[DEBUG] Imported: org.apache.maven.settings < plexus.core 
[DEBUG] Imported: org.apache.maven.toolchain < plexus.core 
[DEBUG] Imported: org.apache.maven.usability < plexus.core 
[DEBUG] Imported: org.apache.maven.wagon.* < plexus.core 
[DEBUG] Imported: org.apache.maven.wagon.authentication < plexus.core 
[DEBUG] Imported: org.apache.maven.wagon.authorization < plexus.core 
[DEBUG] Imported: org.apache.maven.wagon.events < plexus.core 
[DEBUG] Imported: org.apache.maven.wagon.observers < plexus.core 
[DEBUG] Imported: org.apache.maven.wagon.proxy < plexus.core 
[DEBUG] Imported: org.apache.maven.wagon.repository < plexus.core 
[DEBUG] Imported: org.apache.maven.wagon.resource < plexus.core 
[DEBUG] Imported: org.codehaus.classworlds < plexus.core 
[DEBUG] Imported: org.codehaus.plexus.* < plexus.core 
[DEBUG] Imported: org.codehaus.plexus.classworlds < plexus.core 
[DEBUG] Imported: org.codehaus.plexus.component < plexus.core 
[DEBUG] Imported: org.codehaus.plexus.configuration < plexus.core 
[DEBUG] Imported: org.codehaus.plexus.container < plexus.core 
[DEBUG] Imported: org.codehaus.plexus.context < plexus.core 
[DEBUG] Imported: org.codehaus.plexus.lifecycle < plexus.core 
[DEBUG] Imported: org.codehaus.plexus.logging < plexus.core 
[DEBUG] Imported: org.codehaus.plexus.personality < plexus.core 
[DEBUG] Imported: org.codehaus.plexus.util.xml.Xpp3Dom < plexus.core 
[DEBUG] Imported: org.codehaus.plexus.util.xml.pull.XmlPullParser < plexus.core 
[DEBUG] Imported: org.codehaus.plexus.util.xml.pull.XmlPullParserException < plexus.core 
[DEBUG] Imported: org.codehaus.plexus.util.xml.pull.XmlSerializer < plexus.core 
[DEBUG] Imported: org.eclipse.aether.* < plexus.core 
[DEBUG] Imported: org.eclipse.aether.artifact < plexus.core 
[DEBUG] Imported: org.eclipse.aether.collection < plexus.core 
[DEBUG] Imported: org.eclipse.aether.deployment < plexus.core 
[DEBUG] Imported: org.eclipse.aether.graph < plexus.core 
[DEBUG] Imported: org.eclipse.aether.impl < plexus.core 
[DEBUG] Imported: org.eclipse.aether.installation < plexus.core 
[DEBUG] Imported: org.eclipse.aether.internal.impl < plexus.core 
[DEBUG] Imported: org.eclipse.aether.metadata < plexus.core 
[DEBUG] Imported: org.eclipse.aether.repository < plexus.core 
[DEBUG] Imported: org.eclipse.aether.resolution < plexus.core 
[DEBUG] Imported: org.eclipse.aether.spi < plexus.core 
[DEBUG] Imported: org.eclipse.aether.transfer < plexus.core 
[DEBUG] Imported: org.eclipse.aether.version < plexus.core 
[DEBUG] Imported: org.slf4j.* < plexus.core 
[DEBUG] Imported: org.slf4j.helpers.* < plexus.core 
[DEBUG] Imported: org.slf4j.spi.* < plexus.core 
[DEBUG] Populating class realm maven.api 
[INFO] Error stacktraces are turned on. 
[DEBUG] Reading global settings from /usr/local/maven/conf/settings.xml 
[DEBUG] Reading user settings from /home/vagrant/.m2/settings.xml 
[DEBUG] Reading global toolchains from /usr/local/maven/conf/toolchains.xml 
[DEBUG] Reading user toolchains from /home/vagrant/.m2/toolchains.xml 
[DEBUG] Using local repository at /home/vagrant/.m2/repository 
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for /home/vagrant/.m2/repository 

Maven неправильно устанавливает локальное хранилище по умолчанию /home/vagrant/.m2/repository.

Я не думаю, что проблема связана с тем, что папка /vagrant используется совместно с гостевой ОС и операционной системой хоста, поскольку работа mvn -Dmaven.repo.local=/vagrant/.m2/repository работает правильно.

Есть ли причина, по которой Maven не будет правильно читать или интерпретировать файл settings.xml users в этой ситуации?

ответ

0

Как обычно, объяснение проблемы ведет меня по пути поиска ответа. Для всех, кто наткнулся на этот пост, проблема заключалась в том, что Chef Maven Cookbook имеет атрибут по умолчанию node['maven']['mavenrc']['opts'], который устанавливает значение /etc/mavenrc/ в -Dmaven.repo.local=$HOME/.m2/repository -Xmx384m (начиная с версии 2.2.0 Поваренной книги). Это перекрывало всю конфигурацию локального репозитория, который я делал в файле settings.xml пользователя.

Чтобы исправить это я изменил значение по умолчанию этого атрибута в атрибутах моего рецепта по умолчанию файл attributes/default.rb в default[maven][mavenrc][opts] = ''