Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我的依赖项定义有什么问题?_Java_Maven_Pom.xml - Fatal编程技术网

Java 我的依赖项定义有什么问题?

Java 我的依赖项定义有什么问题?,java,maven,pom.xml,Java,Maven,Pom.xml,我的pom.xml <?xml version="1.0" encoding="UTF-8"?> <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

我的pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example.cassandra</groupId>
<artifactId>simple-client</artifactId>
<packaging>jar</packaging>
<version>0.1.0</version>

 <dependencies>
  <dependency>
   <groupId>com.datastax.cassandra</groupId>
   <artifactId>cassandra-driver-core</artifactId>
   <version>2.1.0</version>
   <scope>test</scope>
  </dependency>
 </dependencies>

 <build>
  <plugins>
   <plugin>
      <groupId>org.codehaus.mojo</groupId>
      <artifactId>exec-maven-plugin</artifactId>
      <version>1.3.2</version>
      <configuration>
         <mainClass>com.example.cassandra.Client</mainClass>
      </configuration>
    </plugin>
  </plugins>
 </build>
 </project>
我使用

  mvn -e compile
上面说

  [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler- 
     plugin:2.0.2:compile (default-compile) on project simple-client:   
     Compilation failure
  [ERROR] /cassandra/src/main/java/com/example/cassandra/Client.java:[3,31] 
     error: package com.datastax.driver.core does not exist
  [ERROR] -> [Help 1]
     org.apache.maven.lifecycle.LifecycleExecutionException: Failed to  
     execute goal org.apache.maven.plugins:maven-compiler- 
     plugin:2.0.2:compile (default-compile) on project simple-client:   
     Compilation failure
     /cassandra/src/main/java/com/example/cassandra/Client.java:[3,31]  
     error: package com.datastax.driver.core does not exist
我知道
dependency jar
添加不正确,因为它抱怨包不存在。我应该在哪里添加依赖项,以便我的代码能够成功编译和tun

我指的是这个网站来运行这个例子

项目结构

  Cassandra
     pom.xml
     src
        main
          java
            com
              example
                cassandra
                  Client.java

我在Cassandra目录下运行这些命令,pom.xml就是在该目录下显示的

这是由于您指定的依赖范围。通过不指定范围,默认值为
compile

发件人:

依赖范围用于限制依赖项的传递性, 以及影响用于各种构建任务的类路径

有6个作用域可用:

  • 编译:这是默认范围,如果未指定,则使用。编译依赖项在项目的所有类路径中都可用。 此外,这些依赖关系将传播到依赖项目
  • 提供:这很像compile,但表示您希望JDK或容器在运行时提供依赖关系。对于 例如,在为Java企业构建web应用程序时 在版本中,您将设置对Servlet API和相关API的依赖关系 由于web容器提供了 那些课。此范围仅在编译和 测试类路径,并且不是可传递的
  • 运行时:此范围表示编译时不需要依赖项,但执行时需要依赖项。它在运行时 和测试类路径,但不是编译类路径
  • 测试:此范围表示正常使用应用程序时不需要依赖项,仅适用于测试 编译和执行阶段
  • 系统:此范围与提供的类似,只是您必须提供显式包含它的JAR。人工制品是 始终可用,并且不会在存储库中查找
  • 导入:(仅在Maven 2.0.9或更高版本中可用)此作用域仅用于 节。它表示指定的POM应替换为 POM部分中的依赖项。自从 它们被替换,具有导入范围的依赖项实际上不存在 参与限制依赖项的传递性

请显示您正在尝试编译的项目的结构。可能是/cassandra/src/main/java/com/example/cassandra/文件夹不存在。@AlexanderFedyukov更新了问题您能尝试安装此依赖项吗@TimBiegeleisen是的,我正在尝试添加这种依赖性。删除Maven依赖性中的
test
,看看编译目标是否有效。我已经读过了。我认为考试是最合适的选择。你能告诉我为什么我的代码不能编译吗?因为“仅适用于测试编译和执行阶段”,我在文档中看到了这一行。Maven使用一个目标,您可以指定一些范围取决于某些构建目标。具有测试范围的依赖项将不包括在编译目标中,并且您正在进行编译,因此该依赖项不可用。
  Cassandra
     pom.xml
     src
        main
          java
            com
              example
                cassandra
                  Client.java