Maven 不会将依赖项与 java 导入相关联
Maven won't associate dependencies with java imports
我正在尝试构建一个新的 Ambari 视图(Ambari 是 Apache 的一个开源项目),它将允许用户在管理 Hadoop 的同时管理他们的 OneFS 集群。我是 Maven 的新手,所以我希望这个问题很容易解决(看起来很容易,但到目前为止我还没有弄清楚)。
我在 .java 文件中定义了以下导入:
package org.apache.ambari.view;
import java.lang.Integer; // Provides several methods for converting an int to a String and a String to an int.
import java.io.IOException; // Signals that an I/O exception of some sort has occurred.
import java.net.UnknownHostException; // Thrown to indicate that the IP address of a host could not be determined.
import java.net.URL; // Uniform Resource Locator - a pointer to a "resource" on the World Wide Web.
import java.net.Socket; // An endpoint for communication between two machines.
import java.util.ArrayList; // Resizable-array implementation of the List interface.
import org.apache.commons.codec.binary.Base64; // Provides Base64 encoding and decoding as defined by RFC 2045.
import org.apache.http.HttpEntity; // An entity that can be sent or received with an HTTP message.
import org.apache.http.util.EntityUtils; // Static helpers for dealing with HttpEntitys.
import org.apache.http.message.BasicNameValuePair; // NameValuePair dictionary type.
import org.apache.http.impl.client.CloseableHttpClient; // Base implementation of HttpClient that also implements Closeable.
import org.apache.http.impl.client.HttpClients; // Factory methods for CloseableHttpClient instances.
import org.apache.http.client.methods.CloseableHttpResponse;// Extended version of the HttpResponse interface that also extends Closeable.
import org.apache.http.client.entity.UrlEncodedFormEntity; // An entity composed of a list of url-encoded pairs for sending HTTP POST requests.
import org.apache.http.client.methods.HttpPost; // An HTTP POST class as defined by section 9.5 of RFC2616
public class Papi {
private String m_clustername;
private String m_username;
private String m_password;
private String m_url;
private String m_sessionurl;
private String m_ipaddress;
private int m_timeout;
private int m_responsecode;
public Papi(String clustername, String username, String password, int port) {
Socket socket;
try {
socket = new Socket(clustername, port);
m_ipaddress = socket.getInetAddress().getHostAddress();
socket.close();
} catch(UnknownHostException e) {
System.out.println("ERROR 1: Failed to open session (UnknownHostException)");
} catch(IOException e) {
System.out.println("ERROR 1: Failed to open session (IOException)");
}
m_url = "https://" + m_ipaddress + ":" + Integer.toString(port);
m_sessionurl = m_url + "/platform" + "/1?describe&list&all";
m_username = username;
m_password = password;
m_responsecode = 0;
}
public int GetResponseCode() {
return m_responsecode;
}
public String GetSessionURL() {
return m_sessionurl;
}
// Makes an https POST request to OneFS.
public String DoPost() throws Exception {
String response;
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(m_sessionurl);
ArrayList <BasicNameValuePair> basicNameValuePair = new ArrayList <BasicNameValuePair>();
basicNameValuePair.add(new BasicNameValuePair("username", m_username));
basicNameValuePair.add(new BasicNameValuePair("password", m_password));
httpPost.setEntity(new UrlEncodedFormEntity(basicNameValuePair));
CloseableHttpResponse reply = httpclient.execute(httpPost);
try {
System.out.println(reply.getStatusLine());
HttpEntity entity = reply.getEntity();
// Parse response body and return as a string.
response = EntityUtils.toString(entity);
System.out.println(response);
// Dispose entity contents.
EntityUtils.consume(entity);
return response;
} finally {
reply.close();
return null;
}
return null;
}
}
但是,当我尝试使用 mvn clean package
构建程序时,出现以下错误:
root@Martell-AMBARI:/home/tmunson/ambari/ambari-views/examples/onefs-view# mvn clean package
Picked up _JAVA_OPTIONS: -Xmx2048m -XX:MaxPermSize=512m -Djava.awt.headless=true
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Isilon OneFS View 2.1.3
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ onefs-view ---
[INFO] Deleting /home/tmunson/ambari/ambari-views/examples/onefs-view/target
[INFO] Deleting /home/tmunson/ambari/ambari-views/examples/onefs-view (includes = [**/*.pyc], excludes = [])
[INFO]
[INFO] --- build-helper-maven-plugin:1.8:regex-property (parse-package-version) @ onefs-view ---
[INFO] No match to regex '^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)((\.|-).*)?' found in '2.1.3'. The initial value '2.1.3' is left as-is...
[INFO]
[INFO] --- build-helper-maven-plugin:1.8:regex-property (parse-package-release) @ onefs-view ---
[INFO] No match to regex '^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)((\.|-)(([0-9]+)|(SNAPSHOT)|(techwin)).*)?' found in '2.1.3'. The initial value '2.1.3' is left as-is...
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ onefs-view ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ onefs-view ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/tmunson/ambari/ambari-views/examples/onefs-view/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[28,39] package org.apache.commons.codec.binary does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[30,28] package org.apache.http.util does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[31,31] package org.apache.http.message does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[32,35] package org.apache.http.impl.client does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[33,38] package org.apache.http.client.methods does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[34,35] package org.apache.http.impl.client does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[35,23] package org.apache.http does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[37,37] package org.apache.http.client.entity does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[38,38] package org.apache.http.client.methods does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[39,35] package org.apache.http.impl.client does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[41,1] package org.json does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[86,17] cannot find symbol
symbol: class CloseableHttpClient
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[86,50] cannot find symbol
symbol: variable HttpClients
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[87,17] cannot find symbol
symbol: class HttpPost
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[87,41] cannot find symbol
symbol: class HttpPost
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[89,28] cannot find symbol
symbol: class BasicNameValuePair
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[89,84] cannot find symbol
symbol: class BasicNameValuePair
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[90,44] cannot find symbol
symbol: class BasicNameValuePair
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[91,44] cannot find symbol
symbol: class BasicNameValuePair
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[93,40] cannot find symbol
symbol: class UrlEncodedFormEntity
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[94,17] cannot find symbol
symbol: class CloseableHttpResponse
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[98,21] cannot find symbol
symbol: class HttpEntity
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[101,32] cannot find symbol
symbol: variable EntityUtils
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[104,21] cannot find symbol
symbol: variable EntityUtils
location: class org.apache.ambari.view.Papi
[INFO] 24 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.002s
[INFO] Finished at: Mon Nov 09 01:06:46 PST 2015
[INFO] Final Memory: 14M/240M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project onefs-view: Compilation failure: Compilation failure:
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[28,39] package org.apache.commons.codec.binary does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[30,28] package org.apache.http.util does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[31,31] package org.apache.http.message does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[32,35] package org.apache.http.impl.client does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[33,38] package org.apache.http.client.methods does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[34,35] package org.apache.http.impl.client does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[35,23] package org.apache.http does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[37,37] package org.apache.http.client.entity does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[38,38] package org.apache.http.client.methods does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[39,35] package org.apache.http.impl.client does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[41,1] package org.json does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[86,17] cannot find symbol
[ERROR] symbol: class CloseableHttpClient
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[86,50] cannot find symbol
[ERROR] symbol: variable HttpClients
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[87,17] cannot find symbol
[ERROR] symbol: class HttpPost
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[87,41] cannot find symbol
[ERROR] symbol: class HttpPost
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[89,28] cannot find symbol
[ERROR] symbol: class BasicNameValuePair
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[89,84] cannot find symbol
[ERROR] symbol: class BasicNameValuePair
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[90,44] cannot find symbol
[ERROR] symbol: class BasicNameValuePair
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[91,44] cannot find symbol
[ERROR] symbol: class BasicNameValuePair
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[93,40] cannot find symbol
[ERROR] symbol: class UrlEncodedFormEntity
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[94,17] cannot find symbol
[ERROR] symbol: class CloseableHttpResponse
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[98,21] cannot find symbol
[ERROR] symbol: class HttpEntity
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[101,32] cannot find symbol
[ERROR] symbol: variable EntityUtils
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[104,21] cannot find symbol
[ERROR] symbol: variable EntityUtils
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
我以为我已经在我的 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/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ambari</groupId>
<artifactId>ambari-view-examples</artifactId>
<version>2.1.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>onefs-view</artifactId>
<packaging>jar</packaging>
<name>Isilon OneFS View</name>
<version>2.1.3</version>
<url>http://maven.apache.org</url>
<properties>
<ambari.dir>${project.parent.parent.parent.basedir}</ambari.dir>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.ambari</groupId>
<artifactId>ambari-views</artifactId>
<version>[1.7.0.0,)</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.3</version>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.8</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>rpm-maven-plugin</artifactId>
<version>2.0.1</version>
<executions>
<execution>
<phase>none</phase>
<goals>
<goal>rpm</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
所以我的问题如下:
1) 为什么 Maven 无法识别我在 pom.xml 文件中指定的依赖项?
2) 我将如何让它识别这些依赖项?我有点想知道我是否只是将依赖项列在错误的位置或其他什么地方,但我对 Maven 工作原理的理解是它会找到您在 pom.xml 文件中指定的依赖项,然后下载它们并将它们包含在您的构建中。因为我包括了依赖项但它没有识别它们,所以我一定做错了,但我不知道正确的方法是什么。
在此先感谢大家提供的任何帮助!
如果您在 dependencyManagement 部分定义依赖项(就像您所做的那样),这些依赖项不会添加到项目中。它们仅被配置,因此以该 POM 作为父项的 POM 不需要指定依赖项的版本(依赖项版本由父项管理)。
因此,如果要解决您的问题,只需删除 <dependencyManagement>
和 </dependencyManagement>
标签即可。
我正在尝试构建一个新的 Ambari 视图(Ambari 是 Apache 的一个开源项目),它将允许用户在管理 Hadoop 的同时管理他们的 OneFS 集群。我是 Maven 的新手,所以我希望这个问题很容易解决(看起来很容易,但到目前为止我还没有弄清楚)。
我在 .java 文件中定义了以下导入:
package org.apache.ambari.view;
import java.lang.Integer; // Provides several methods for converting an int to a String and a String to an int.
import java.io.IOException; // Signals that an I/O exception of some sort has occurred.
import java.net.UnknownHostException; // Thrown to indicate that the IP address of a host could not be determined.
import java.net.URL; // Uniform Resource Locator - a pointer to a "resource" on the World Wide Web.
import java.net.Socket; // An endpoint for communication between two machines.
import java.util.ArrayList; // Resizable-array implementation of the List interface.
import org.apache.commons.codec.binary.Base64; // Provides Base64 encoding and decoding as defined by RFC 2045.
import org.apache.http.HttpEntity; // An entity that can be sent or received with an HTTP message.
import org.apache.http.util.EntityUtils; // Static helpers for dealing with HttpEntitys.
import org.apache.http.message.BasicNameValuePair; // NameValuePair dictionary type.
import org.apache.http.impl.client.CloseableHttpClient; // Base implementation of HttpClient that also implements Closeable.
import org.apache.http.impl.client.HttpClients; // Factory methods for CloseableHttpClient instances.
import org.apache.http.client.methods.CloseableHttpResponse;// Extended version of the HttpResponse interface that also extends Closeable.
import org.apache.http.client.entity.UrlEncodedFormEntity; // An entity composed of a list of url-encoded pairs for sending HTTP POST requests.
import org.apache.http.client.methods.HttpPost; // An HTTP POST class as defined by section 9.5 of RFC2616
public class Papi {
private String m_clustername;
private String m_username;
private String m_password;
private String m_url;
private String m_sessionurl;
private String m_ipaddress;
private int m_timeout;
private int m_responsecode;
public Papi(String clustername, String username, String password, int port) {
Socket socket;
try {
socket = new Socket(clustername, port);
m_ipaddress = socket.getInetAddress().getHostAddress();
socket.close();
} catch(UnknownHostException e) {
System.out.println("ERROR 1: Failed to open session (UnknownHostException)");
} catch(IOException e) {
System.out.println("ERROR 1: Failed to open session (IOException)");
}
m_url = "https://" + m_ipaddress + ":" + Integer.toString(port);
m_sessionurl = m_url + "/platform" + "/1?describe&list&all";
m_username = username;
m_password = password;
m_responsecode = 0;
}
public int GetResponseCode() {
return m_responsecode;
}
public String GetSessionURL() {
return m_sessionurl;
}
// Makes an https POST request to OneFS.
public String DoPost() throws Exception {
String response;
CloseableHttpClient httpclient = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(m_sessionurl);
ArrayList <BasicNameValuePair> basicNameValuePair = new ArrayList <BasicNameValuePair>();
basicNameValuePair.add(new BasicNameValuePair("username", m_username));
basicNameValuePair.add(new BasicNameValuePair("password", m_password));
httpPost.setEntity(new UrlEncodedFormEntity(basicNameValuePair));
CloseableHttpResponse reply = httpclient.execute(httpPost);
try {
System.out.println(reply.getStatusLine());
HttpEntity entity = reply.getEntity();
// Parse response body and return as a string.
response = EntityUtils.toString(entity);
System.out.println(response);
// Dispose entity contents.
EntityUtils.consume(entity);
return response;
} finally {
reply.close();
return null;
}
return null;
}
}
但是,当我尝试使用 mvn clean package
构建程序时,出现以下错误:
root@Martell-AMBARI:/home/tmunson/ambari/ambari-views/examples/onefs-view# mvn clean package
Picked up _JAVA_OPTIONS: -Xmx2048m -XX:MaxPermSize=512m -Djava.awt.headless=true
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Isilon OneFS View 2.1.3
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ onefs-view ---
[INFO] Deleting /home/tmunson/ambari/ambari-views/examples/onefs-view/target
[INFO] Deleting /home/tmunson/ambari/ambari-views/examples/onefs-view (includes = [**/*.pyc], excludes = [])
[INFO]
[INFO] --- build-helper-maven-plugin:1.8:regex-property (parse-package-version) @ onefs-view ---
[INFO] No match to regex '^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)((\.|-).*)?' found in '2.1.3'. The initial value '2.1.3' is left as-is...
[INFO]
[INFO] --- build-helper-maven-plugin:1.8:regex-property (parse-package-release) @ onefs-view ---
[INFO] No match to regex '^([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)((\.|-)(([0-9]+)|(SNAPSHOT)|(techwin)).*)?' found in '2.1.3'. The initial value '2.1.3' is left as-is...
[INFO]
[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ onefs-view ---
[debug] execute contextualize
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 2 resources
[INFO]
[INFO] --- maven-compiler-plugin:3.0:compile (default-compile) @ onefs-view ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to /home/tmunson/ambari/ambari-views/examples/onefs-view/target/classes
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[28,39] package org.apache.commons.codec.binary does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[30,28] package org.apache.http.util does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[31,31] package org.apache.http.message does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[32,35] package org.apache.http.impl.client does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[33,38] package org.apache.http.client.methods does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[34,35] package org.apache.http.impl.client does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[35,23] package org.apache.http does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[37,37] package org.apache.http.client.entity does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[38,38] package org.apache.http.client.methods does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[39,35] package org.apache.http.impl.client does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[41,1] package org.json does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[86,17] cannot find symbol
symbol: class CloseableHttpClient
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[86,50] cannot find symbol
symbol: variable HttpClients
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[87,17] cannot find symbol
symbol: class HttpPost
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[87,41] cannot find symbol
symbol: class HttpPost
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[89,28] cannot find symbol
symbol: class BasicNameValuePair
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[89,84] cannot find symbol
symbol: class BasicNameValuePair
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[90,44] cannot find symbol
symbol: class BasicNameValuePair
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[91,44] cannot find symbol
symbol: class BasicNameValuePair
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[93,40] cannot find symbol
symbol: class UrlEncodedFormEntity
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[94,17] cannot find symbol
symbol: class CloseableHttpResponse
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[98,21] cannot find symbol
symbol: class HttpEntity
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[101,32] cannot find symbol
symbol: variable EntityUtils
location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[104,21] cannot find symbol
symbol: variable EntityUtils
location: class org.apache.ambari.view.Papi
[INFO] 24 errors
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.002s
[INFO] Finished at: Mon Nov 09 01:06:46 PST 2015
[INFO] Final Memory: 14M/240M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project onefs-view: Compilation failure: Compilation failure:
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[28,39] package org.apache.commons.codec.binary does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[30,28] package org.apache.http.util does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[31,31] package org.apache.http.message does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[32,35] package org.apache.http.impl.client does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[33,38] package org.apache.http.client.methods does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[34,35] package org.apache.http.impl.client does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[35,23] package org.apache.http does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[37,37] package org.apache.http.client.entity does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[38,38] package org.apache.http.client.methods does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[39,35] package org.apache.http.impl.client does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[41,1] package org.json does not exist
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[86,17] cannot find symbol
[ERROR] symbol: class CloseableHttpClient
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[86,50] cannot find symbol
[ERROR] symbol: variable HttpClients
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[87,17] cannot find symbol
[ERROR] symbol: class HttpPost
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[87,41] cannot find symbol
[ERROR] symbol: class HttpPost
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[89,28] cannot find symbol
[ERROR] symbol: class BasicNameValuePair
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[89,84] cannot find symbol
[ERROR] symbol: class BasicNameValuePair
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[90,44] cannot find symbol
[ERROR] symbol: class BasicNameValuePair
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[91,44] cannot find symbol
[ERROR] symbol: class BasicNameValuePair
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[93,40] cannot find symbol
[ERROR] symbol: class UrlEncodedFormEntity
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[94,17] cannot find symbol
[ERROR] symbol: class CloseableHttpResponse
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[98,21] cannot find symbol
[ERROR] symbol: class HttpEntity
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[101,32] cannot find symbol
[ERROR] symbol: variable EntityUtils
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] /home/tmunson/ambari/ambari-views/examples/onefs-view/src/main/java/org/apache/ambari/view/isilon/Papi.java:[104,21] cannot find symbol
[ERROR] symbol: variable EntityUtils
[ERROR] location: class org.apache.ambari.view.Papi
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
我以为我已经在我的 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/maven-v4_0_0.xsd">
<parent>
<groupId>org.apache.ambari</groupId>
<artifactId>ambari-view-examples</artifactId>
<version>2.1.3</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>onefs-view</artifactId>
<packaging>jar</packaging>
<name>Isilon OneFS View</name>
<version>2.1.3</version>
<url>http://maven.apache.org</url>
<properties>
<ambari.dir>${project.parent.parent.parent.basedir}</ambari.dir>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.ambari</groupId>
<artifactId>ambari-views</artifactId>
<version>[1.7.0.0,)</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.5.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.3</version>
</dependency>
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.6</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.0</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.8</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>rpm-maven-plugin</artifactId>
<version>2.0.1</version>
<executions>
<execution>
<phase>none</phase>
<goals>
<goal>rpm</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
所以我的问题如下:
1) 为什么 Maven 无法识别我在 pom.xml 文件中指定的依赖项?
2) 我将如何让它识别这些依赖项?我有点想知道我是否只是将依赖项列在错误的位置或其他什么地方,但我对 Maven 工作原理的理解是它会找到您在 pom.xml 文件中指定的依赖项,然后下载它们并将它们包含在您的构建中。因为我包括了依赖项但它没有识别它们,所以我一定做错了,但我不知道正确的方法是什么。
在此先感谢大家提供的任何帮助!
如果您在 dependencyManagement 部分定义依赖项(就像您所做的那样),这些依赖项不会添加到项目中。它们仅被配置,因此以该 POM 作为父项的 POM 不需要指定依赖项的版本(依赖项版本由父项管理)。
因此,如果要解决您的问题,只需删除 <dependencyManagement>
和 </dependencyManagement>
标签即可。