maven build error:包org.apache.http不存在

时间:2016-07-04 14:43:37

标签: java maven compiler-errors httpclient

我正在尝试从java程序发送一个简单的HTTP帖子(用于在Heroku上部署)。 我从演示项目here开始。 使用mvn package成功构建项目。

然后我添加了我自己的附加文件TestPost.java并添加了几行代码,将其添加到pom.xml,并且仍然可以正常构建。

然后我尝试添加来自this example(减去package行)的HTTP代码,该代码使用Apache HttpClient库。

使用mvn package会导致以下错误:

package org.apache.http does not exist 

在搜索解决方案后,我尝试在pom.xml中包含依赖项:

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

我的理解是,这应该强制下载必要的软件包,但是在下一次编译时没有显示下载(只是相同的错误),并且该软件包在我的用户.m2 \ repository \文件夹中不可见。

我尝试在pom.xml的不同位置插入此依赖项,但未成功。

为什么没有下载apache库?请注意,我是maven的新手。

1 个答案:

答案 0 :(得分:5)

如果确实需要依赖httpclient,那么这是你应该拥有的pom.xml。

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

现在,如果您将Java源代码放在src / main / java中,其中src和pom.xml位于同一目录中,Maven应该从本地存储库中解析依赖关系并下载它,如果它还没有存在的话。您的本地存储库在Maven安装目录的conf / settings.xml中定义。