# Bei Maven HowTo stecken geblieben



## LargeBearCat (9. Mai 2012)

Ach Opensource...

Ich wollte mir Maven beibringen und habe mich an die offizielle Anleitung gehalten: Maven in 5 Minutes

Nach der Installation, hat mvn --version das richtige angezeigt. Der Beispielcode 

```
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
```

funktionierte allerdings nicht mehr. Es kommt folgende Fehlermeldung:

```
[INFO] Scanning for projects...
Downloading: [url]http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-clean-[/url]
plugin/2.4.1/maven-clean-plugin-2.4.1.pom
Exception in thread "pool-1-thread-1" ------------------------------------------
---------
constituent[0]: file:/C:/Maven/lib/aether-api-1.11.jar
constituent[1]: file:/C:/Maven/lib/aether-api-1.13.1.jarjava.lang.NoSuchMethodEr
ror: org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.getReadTimeout(
)I

constituent[2]: file:/C:/Maven/lib/aether-connector-wagon-1.11.jar      at org.a
pache.maven.wagon.shared.http4.AbstractHttpClientWagon.setParameters(AbstractHtt
pClientWagon.java:692)

constituent[3]: file:/C:/Maven/lib/aether-connector-wagon-1.13.1.jar    at org.a
pache.maven.wagon.shared.http4.AbstractHttpClientWagon.execute(AbstractHttpClien
tWagon.java:646)

constituent[4]: file:/C:/Maven/lib/aether-impl-1.11.jar at org.apache.maven.wago
n.shared.http4.AbstractHttpClientWagon.fillInputData(AbstractHttpClientWagon.jav
a:793)

        at org.apache.maven.wagon.StreamWagon.getInputStream(StreamWagon.java:11
6)constituent[5]: file:/C:/Maven/lib/aether-impl-1.13.1.jar

        at org.apache.maven.wagon.StreamWagon.getIfNewer(StreamWagon.java:88)con
stituent[6]: file:/C:/Maven/lib/aether-spi-1.11.jar

        at org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61)constituen
t[7]: file:/C:/Maven/lib/aether-spi-1.13.1.jar

        at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.
run(WagonRepositoryConnector.java:608)constituent[8]: file:/C:/Maven/lib/aether-
util-1.11.jar

        at org.sonatype.aether.util.concurrency.RunnableErrorForwarder$1.run(Run
nableErrorForwarder.java:64)constituent[9]: file:/C:/Maven/lib/aether-util-1.13.
1.jar

        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)constituent[10]: file:/C:/Maven/lib/commons-cli-1.2.jar

        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)constituent[11]: file:/C:/Maven/lib/maven-aether-provider-3.0.3.jar

        at java.lang.Thread.run(Thread.java:722)constituent[12]: file:/C:/Maven/
lib/maven-aether-provider-3.0.4.jar

constituent[13]: file:/C:/Maven/lib/maven-artifact-3.0.3.jar
constituent[14]: file:/C:/Maven/lib/maven-artifact-3.0.4.jar
constituent[15]: file:/C:/Maven/lib/maven-compat-3.0.3.jar
constituent[16]: file:/C:/Maven/lib/maven-compat-3.0.4.jar
constituent[17]: file:/C:/Maven/lib/maven-core-3.0.3.jar
constituent[18]: file:/C:/Maven/lib/maven-core-3.0.4.jar
constituent[19]: file:/C:/Maven/lib/maven-embedder-3.0.3.jar
constituent[20]: file:/C:/Maven/lib/maven-embedder-3.0.4.jar
constituent[21]: file:/C:/Maven/lib/maven-model-3.0.3.jar
constituent[22]: file:/C:/Maven/lib/maven-model-3.0.4.jar
constituent[23]: file:/C:/Maven/lib/maven-model-builder-3.0.3.jar
constituent[24]: file:/C:/Maven/lib/maven-model-builder-3.0.4.jar
constituent[25]: file:/C:/Maven/lib/maven-plugin-api-3.0.3.jar
constituent[26]: file:/C:/Maven/lib/maven-plugin-api-3.0.4.jar
constituent[27]: file:/C:/Maven/lib/maven-repository-metadata-3.0.3.jar
constituent[28]: file:/C:/Maven/lib/maven-repository-metadata-3.0.4.jar
constituent[29]: file:/C:/Maven/lib/maven-settings-3.0.3.jar
constituent[30]: file:/C:/Maven/lib/maven-settings-3.0.4.jar
constituent[31]: file:/C:/Maven/lib/maven-settings-builder-3.0.3.jar
constituent[32]: file:/C:/Maven/lib/maven-settings-builder-3.0.4.jar
constituent[33]: file:/C:/Maven/lib/nekohtml-1.9.6.2.jar
constituent[34]: file:/C:/Maven/lib/plexus-cipher-1.4.jar
constituent[35]: file:/C:/Maven/lib/plexus-cipher-1.7.jar
constituent[36]: file:/C:/Maven/lib/plexus-component-annotations-1.5.5.jar
constituent[37]: file:/C:/Maven/lib/plexus-interpolation-1.14.jar
constituent[38]: file:/C:/Maven/lib/plexus-sec-dispatcher-1.3.jar
constituent[39]: file:/C:/Maven/lib/plexus-utils-2.0.6.jar
constituent[40]: file:/C:/Maven/lib/sisu-guava-0.9.9.jar
constituent[41]: file:/C:/Maven/lib/sisu-guice-2.9.4-no_aop.jar
constituent[42]: file:/C:/Maven/lib/sisu-guice-3.1.0-no_aop.jar
constituent[43]: file:/C:/Maven/lib/sisu-inject-bean-2.1.1.jar
constituent[44]: file:/C:/Maven/lib/sisu-inject-bean-2.3.0.jar
constituent[45]: file:/C:/Maven/lib/sisu-inject-plexus-2.1.1.jar
constituent[46]: file:/C:/Maven/lib/sisu-inject-plexus-2.3.0.jar
constituent[47]: file:/C:/Maven/lib/wagon-file-1.0-beta-7.jar
constituent[48]: file:/C:/Maven/lib/wagon-file-2.2.jar
constituent[49]: file:/C:/Maven/lib/wagon-http-2.2-shaded.jar
constituent[50]: file:/C:/Maven/lib/wagon-http-lightweight-1.0-beta-7.jar
constituent[51]: file:/C:/Maven/lib/wagon-http-shared-1.0-beta-7.jar
constituent[52]: file:/C:/Maven/lib/wagon-provider-api-1.0-beta-7.jar
constituent[53]: file:/C:/Maven/lib/wagon-provider-api-2.2.jar
constituent[54]: file:/C:/Maven/lib/xercesMinimal-1.9.6.2.jar
---------------------------------------------------
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.maven.wagon.s
hared.http4.AbstractHttpClientWagon.getReadTimeout()I
        at org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.setParame
ters(AbstractHttpClientWagon.java:692)
        at org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.execute(A
bstractHttpClientWagon.java:646)
        at org.apache.maven.wagon.shared.http4.AbstractHttpClientWagon.fillInput
Data(AbstractHttpClientWagon.java:793)
        at org.apache.maven.wagon.StreamWagon.getInputStream(StreamWagon.java:11
6)
        at org.apache.maven.wagon.StreamWagon.getIfNewer(StreamWagon.java:88)
        at org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61)
        at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$GetTask.
run(WagonRepositoryConnector.java:608)
        at org.sonatype.aether.util.concurrency.RunnableErrorForwarder$1.run(Run
nableErrorForwarder.java:64)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.
java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:603)
        at java.lang.Thread.run(Thread.java:722)
```

Ich verwende win7 64Bit. Den Proxy habe ich unter .m2/settings.xml ebenfalls eingestellt.

:shock::bahnhof:


----------



## kama (9. Mai 2012)

Hi,

welche Maven Version verwendest Du? Weiterhin welche Java Version? Benutzt Du ein JDK ?

Wo liegt die settings.xml Datei ?

Gruß
Karl-Heinz Marbaise


----------



## LargeBearCat (10. Mai 2012)

kama hat gesagt.:


> Hi,
> 
> welche Maven Version verwendest Du? Weiterhin welche Java Version? Benutzt Du ein JDK ?
> 
> ...



Maven 3.0.4, JDK 1.7.04, Java Version 7 Update 4 (das meinst du oder?). Die settings.xml liegt im .m2 Ordner. .m2 Ordner hat Maven beim ersten Versuch erstellt. Bei mir zu Hause hat er ohne settings.xml compliert. Aber im Büro haben wir einen Proxy. 

Im settings.xml steht:

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

  <proxies>
    <proxy>
      <active>true</active>
      <protocol>http</protocol>
      <port>Portnummer</port>
      <host>IP-Adresse</host>
    </proxy>
  </proxies>

</settings>
```

Die Proxydaten gebe ich zur Sicherheit lieber nicht weiter.


----------



## kama (10. Mai 2012)

Hi,

also der Auszug aus der settings.xml kommt mir sehr komisch vor....

Bei Dir zu Hause funktioniert dass einfach aus dem Grunde weil Du direkt Zugriff auf Internet hast und keinen Proxy hast...da Du aber in der Firma über einen Proxy gehst musst Du den auch in der Settings konfigurieren...


```
<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">
...
```

Vergleiche das mal bitte....

Bekommst Du keine Fehlermeldungen ?

Hast Du mal einfach ein mvn clean versucht ?

Den Pfad c:\Maven-3.0.4\bin ist im PATH nehme ich ?

Gruß
Karl-Heinz Marbaise


----------



## LargeBearCat (10. Mai 2012)

Ich glaube mvn clean hat nicht geholfen. Muss ich nochmals ausprobieren.

Die settings.xml selbst führt nicht zu Fehlern. Die habe ich von Settings Reference.
Wie würdest du die settings.xml an meiner Stelle vom Aufbau her schreiben? --> Code 

Der Path ist auf C:\Maven\bin gesetzt (so ähnlich wie in der 5 minutes Anleitung). mvn -version zeigt ja die erwartete Antwort.


----------



## kama (10. Mai 2012)

Hi,

hast Du die Korrektur an der settings.xml vorgenommen ?

Wenn Du einen Proxy hast dann wie folge:


```
<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">

  <proxies>
    <proxy>
      <id>myproxy</id>
      <active>true</active>
      <protocol>http</protocol>
      <host>proxy.somewhere.com</host>
      <port>8080</port>
      <username>proxyuser</username>
      <password>somepassword</password>
    </proxy>
  </proxies>

</settings>
```

Gruß
Karl-Heinz Marbaise


----------



## LargeBearCat (16. Mai 2012)

Danke für deine Hilfe.

mvn clean hilft nicht, da ich aktuell gar kein Projekt mit pom.xml habe :lol:.

Deine setting.xml hat auch nicht geholfen. Kann ich für <id> einen beliebigen Namen wählen? Wenn ich im Büro einen Rechner benutze, habe wir kein Benutzername oder Passwort für den Proxy. Deshalb sind die Felder bei mir leer. Muss ich Benutzername und Passwort angeben. Über ping konnte der Proxy auf jeden Fall gefunden werden.

Das wird langsam lächerlich...


----------



## LargeBearCat (21. Mai 2012)

Gibt es wirklich keine Standardlösung? Das muss doch eigentlich ein triviales Problem sein? Es gibt so viele die Maven verwenden. Hat außer mir niemand das Problem?


----------



## maki (21. Mai 2012)

Hast du mal dein lokales Maven Repo gelöscht?

Ansonsten würde ich mich nicht lange mit dem quickstart archetype aufhalten, erzeugt wirklich nur eine mini Pom und ein paar (meist leere) Ordner.
Das deutet nur daaauf hin dass es ein anderes Problem gibt, tippe auf den Proxy.. was für einen Proxy verwendet ihr denn in der Arbeit? Zuhause geht es ja...
Nur weil du dich mit zB. dem IE nicht anmelden musst, heisst das nciht dass der Proxy keinen Benutzernamen & Passwort braucht.


----------



## LargeBearCat (21. Mai 2012)

Vielen Dank für deine Antwort!

Lokales Repo löschen hat nicht geholfen. 

Der Administrator hat mir versichert, dass ich kein Benutzername oder Passwort angeben soll. Abgesehen von Adresse und Port weiß ich nichts über den Proxy.

Ich versuche das offzielle Beispiel umzusetzen, da es ja minimalste Bedingungen vorraussetzt. Wenn die Anfänger HowTo schon nicht funktioniert, macht es vielleicht wenig Sinn großartig etwas Anderes zu versuchen. Die andere Option ist einfach ein Eclipse Plugin zu verwenden, aber wenn das einfachste Billigbeispiel nicht funktioniert, werde ich immer das Gefühl haben, dass irgendetwas nicht stimmt.

Nochmal für ganz Dumme:
Mache ich das generell überhaupt richtig?

- Ich lade mir Maven 3 und Java JDK etc. runter. 
- Installation.
- Setze alle Pfade. 
- mvn --version und java -version zeigen Vernünftiges an.
- Ich setze bei Windows unter Benutzer/ich/ einen .m2 Ordner und tue dort hinein mein settings.xml wie oben beschrieben.
- Ich führe das Beispielbefehl von "Maven in 5 minutes" aus, um ein Beispielprojekt zu erstellen.

Alles richtig? Fehlt was?

Es alles eigentlich stimmt aber trotzdem nix funktioniert, dann liegt es wohl an unserer Netzwerkadministration.


----------



## maki (21. Mai 2012)

Bei dir zuhause geht ja alles, für den Rest der Welt funktioneirt es ja auch, dann bleiben nicht mehr allzuviel Möglichkeiten..

Frag mal den admin ob NTLM zur Authentifizierung genutzt wird.
Hast du mal trotzdem versucht Benutzernamen & Passwort einzurichten?
Ich nutze manchmal zB. diesen Cntlm: Fast NTLM Authentication Proxy in C NTLM Authentication Proxy wenn das Netzwerk beim Kunden Probleme macht und kein Admin dort diesen Titel verdient


----------



## kama (21. Mai 2012)

maki hat gesagt.:


> Bei dir zuhause geht ja alles, für den Rest der Welt funktioneirt es ja auch, dann bleiben nicht mehr allzuviel Möglichkeiten..


;-)

Gruß
Karl-Heinz Marbaise


----------



## schalentier (22. Mai 2012)

maki hat gesagt.:


> Ich nutze manchmal zB. diesen Cntlm: Fast NTLM Authentication Proxy in C NTLM Authentication Proxy wenn das Netzwerk beim Kunden Probleme macht und kein Admin dort diesen Titel verdient



Ich benutz diesen, der is in Python programmiert und laeuft out-of-the-box in einer Cygwin-Umgebung: NTLM Authorization Proxy Server


----------

