2016-05-12 10 views
0

Ich habe ein Problem mit Maven nicht in Bezug auf die <localRepository> Wert in der Datei settings.xml meines Benutzers.Maven ignoriert localRepository-Einstellung in den Einstellungen des Benutzers.xml

Meine Umgebung ist eine Vagrant-Instanz, die mit Chef bereitgestellt wurde. Ich habe Maven mit dem Küchenchef Maven cookbook installiert.

Maven läuft gut, außer der Tatsache, dass es das lokale Repository ignoriert ich in der settings.xml ssh Benutzer definiert haben:

[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> 

Wie Sie sehen, ich bin versucht, das lokale Repository zwischen teilen das Host-Betriebssystem und das Gastbetriebssystem durch das Maven Local Repository als Unterverzeichnis unter dem Ordner ablegen, die vom Host-Betriebssystem und das Gastbetriebssystem geteilt wird: /vagrant/.m2/repository

Allerdings, wenn ich Maven mit der Debug-Option Set laufen: mvn -X Maven informiert mich, dass es die settings.xml-Datei korrekt liest, aber für einige Grund stellt nicht die lokale Repository richtig:

[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 falsch setzt das lokale Repository auf den Standard /home/vagrant/.m2/repository.

Ich glaube nicht, dass es ein Problem mit dem Ordner /vagrant ist, der zwischen dem Gastbetriebssystem und dem Hostbetriebssystem geteilt wird, da das Laufen von mvn -Dmaven.repo.local=/vagrant/.m2/repository richtig funktioniert.

Gibt es irgendeinen Grund, warum Maven in dieser Situation die Datei settings.xml der Benutzer nicht lesen oder interpretieren würde?

Antwort

0

Wie immer führte mich das Erklären des Problems zu dem Weg, eine Antwort zu finden. Für jeden, der über diesen Beitrag stolpert, war das Problem, dass das Chef Maven Cookbook ein Standardattribut node['maven']['mavenrc']['opts'] hat, das den Wert von /etc/mavenrc/ zu -Dmaven.repo.local=$HOME/.m2/repository -Xmx384m (ab Version 2.2.0 des Kochbuchs) setzt. Dies überschreibt die gesamte Konfiguration des lokalen Repositorys, das ich in der Datei settings.xml des Benutzers ausgeführt habe.

Um dies zu beheben, änderte ich den Standardwert dieses Attributs in Standardattributen meiner Rezeptdatei attributes/default.rb-default[maven][mavenrc][opts] = ''