2016-07-04 9 views
1

Ich versuche einen einfachen HTTP-Post von einem Java-Programm (für die Bereitstellung auf Heroku) zu senden. Ich begann mit dem Demo-Projekt here. Mit mvn package wird das Projekt erfolgreich erstellt.maven build error: Paket org.apache.http existiert nicht

Ich habe dann meine eigene zusätzliche Datei TestPost.java mit ein paar Zeilen Code hinzugefügt, fügte es an die pom.xml, und immer noch gut gebaut.

Dann habe ich versucht, den HTTP-Code von this example (minus der package Zeile), die die Apache HttpClient-Bibliothek verwendet.

Mit mvn package Ergebnisse in dem folgenden Fehler:

package org.apache.http does not exist 

Nach der Suche nach Lösungen habe ich versucht, eine Abhängigkeit in der pom.xml einschließlich:

<dependencies> 
    <dependency> 
     <groupId>org.apache.httpcomponents</groupId> 
     <artifactId>httpclient</artifactId> 
     <version>4.5.2</version> 
     <scope>compile</scope> 
    </dependency> 
</dependencies> 

Mein Verständnis war, dass dies ein Download der Kraft sollte notwendiges Paket, aber beim nächsten Kompilieren wurde kein Download angezeigt (nur der gleiche Fehler), und das Paket ist in meinem Benutzerordner .m2 \ repository \ nicht sichtbar.

Ich habe versucht, diese Abhängigkeit an verschiedenen Stellen in meinem pom.xml ohne Erfolg einzufügen.

Warum wird die Apache-Bibliothek nicht heruntergeladen? Bitte beachten Sie, dass ich neu zu Maven bin.

+2

'org.http.apache.http' ist nicht der richtige Paketname. Es ist 'org.apache.http'. – Tunaki

Antwort

0

Hier ist die pom.xml, die Sie haben sollten, wenn Sie tatsächlich auf httpclient angewiesen sind.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>demo</groupId> 
    <artifactId>httpclient-demo</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>httpclient-demo</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>org.apache.httpcomponents</groupId> 
      <artifactId>httpclient</artifactId> 
      <version>4.5.2</version> 
     </dependency> 
    </dependencies> 
</project> 

Nun, wenn Sie in src/main/java Java-Quellen setzen, wo src und pom.xml in demselben Verzeichnis befindet, Maven sollten die Abhängigkeit von Ihrem lokalen Repository, lösen und es herunterladen, sollte es nicht Sei schon da. Ihr lokales Repository ist in der Datei conf/settings.xml in Ihrem Maven-Installationsverzeichnis definiert.

+0

Dies löste es, danke! Dachte, ich habe die Abhängigkeiten in dieser Position in der pom.xml ausprobiert, aber offensichtlich nicht ... – Andrew

1

AFAIK, gibt es kein Paket namens org.http.apache.http. Allerdings gibt es auf org.apache.http.

Kurz gesagt, es gibt einen Tippfehler in Ihrem Code, und das ist der Grund für die Kompilierung ... kein Problem mit der Angabe oder Herunterladen von Abhängigkeiten (Maven).

+0

Entschuldigung, Copy-Paste-Fehler auf meiner Seite, Code war korrekt, aber Frage hier gepostet wurde nicht - korrigiert haben – Andrew