我正在尝试从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的新手。
答案 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中定义。