繁体   English   中英

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>标记。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM