Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.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
EclipseMaven依赖项jar灰显,can';不能从它导入类_Eclipse_Maven_M2eclipse - Fatal编程技术网

EclipseMaven依赖项jar灰显,can';不能从它导入类

EclipseMaven依赖项jar灰显,can';不能从它导入类,eclipse,maven,m2eclipse,Eclipse,Maven,M2eclipse,我正在帮助一位朋友第一次用m2eclipse配置一个maven项目。我们都非常不熟悉它,并且遇到了一个问题,即即使依赖项jar在项目目录中的“maven dependencies”下显示其包,但如果我们尝试从该jar的包中导入任何内容,它也找不到该类 我注意到有问题的罐子是灰色的,不像其他正在工作的罐子那样不透明 奇怪的是,如果在导入中悬停类名,它会显示类的简要描述(来自jar中的文档!),但它不允许我导入它。所有其他maven依赖项都可以很好地导入。有什么想法吗?我们甚至找不到深色图标的含义

我正在帮助一位朋友第一次用m2eclipse配置一个maven项目。我们都非常不熟悉它,并且遇到了一个问题,即即使依赖项jar在项目目录中的“maven dependencies”下显示其包,但如果我们尝试从该jar的包中导入任何内容,它也找不到该类

我注意到有问题的罐子是灰色的,不像其他正在工作的罐子那样不透明

奇怪的是,如果在导入中悬停类名,它会显示类的简要描述(来自jar中的文档!),但它不允许我导入它。所有其他maven依赖项都可以很好地导入。有什么想法吗?我们甚至找不到深色图标的含义

此外,pom.xml非常简单:

http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0

  <groupId>com.something.portal.test</groupId>
  <artifactId>PortalFrontEndTests</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>jar</packaging>

  <name>PortalFrontEndTests</name>
  <url>http://maven.apache.org</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

    <!-- Selenium -->
    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>2.53.1</version>
    </dependency>

    <!-- TestNG -->
    <dependency>
        <groupId>org.testng</groupId>
        <artifactId>testng</artifactId>
        <version>6.11</version>
        <scope>test</scope>
    </dependency>

  </dependencies>
</project>
com.something.portal.test
便携式前端测试
0.0.1-快照
罐子
便携式前端测试
http://maven.apache.org
UTF-8
朱尼特
朱尼特
3.8.1
测试
org.seleniumhq.selenium
硒爪哇
2.53.1
org.testng
testng
6.11
测试

我不确定我在这里遗漏了什么

我发现了问题。这是因为我在源目录而不是测试目录中有类,并且两个maven依赖项都被标记为“仅对测试可见”“

我不确定灰显部分是否正确。如果这是特性,因为它建议测试类应该在/test而不是/src下。 然而,你们的问题的解决方案是插件的范围,把它改为编译,你们就可以很好地去做了。 i、 e.将测试替换为编译:
测试
编译


就这样。导入测试包时不会出现任何错误

我在maven pom中使用
测试时遇到了相同的问题

新的Eclipse/Java版本似乎有一个新属性:

<classpathentry kind="src" output="target/test-classes" path="src/test/java/...">
    <attributes>
        <attribute name="test" value="true"/>
    </attributes>
</classpathentry>

启用此选项后,我消除了所有编译器错误。

打开pom.xml文件 检查灰显jar文件的名称 改变

测试

编译

在POM文件中检查您的依赖范围

编译、提供、系统和测试这些都是可用的测试

测试->编译会将依赖项从灰色更改为白色


如果您的依赖项是针对测试范围的,则该依赖项在应用程序中无法正常使用,而编译范围在项目的类路径中设置该依赖项。

当然,更一般地说,范围需要与希望导入或访问依赖项的类等的位置相匹配。是的,这是有效的,我必须找到vim.classpath并搜索测试类,然后像上面提到的那样添加属性测试。有了这个集合,我可以在命令行上运行mvn测试,也可以在eclipse中运行测试。
<scope>test</scope>
<scope>compile</scope>