2016-09-21 105 views
0

我在Intellij中创建一个Gradle项目来提高我的技能,因为我正在学习。以前,我使用Maven创建了同样的项目,并且运行良好。Javax.servlet依赖不起作用

我的项目是这样的: Project

你怎么可以在图片中看到“的HttpServlet”不承认,我不知道为什么,因为我有依赖,显然一切是正确的,在这里是我的build.gradle与依赖:

group 'com.aprendiendo.java' 
version '1.0-SNAPSHOT' 

apply plugin: 'java' 
apply plugin: 'war' 

sourceCompatibility = 1.5 

repositories { 
    mavenCentral() 
} 

dependencies { 
    testCompile group: 'junit', name: 'junit', version: '4.11' 

    // https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api 
    compile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0' 
} 

在第一个图像可以看出如何在Gadle项目菜单 - >依赖文件夹是javax.servlet ....但是它不起作用,因为我不能使用任何Java Servlet API(类,等等),你怎么能看到我的图像我之前提出的项目。

我修改了一切,我不知道发生了什么。

+0

什么意思'它不起作用.'? – Jens

+0

这意味着依赖是在代码中,但它并不重要,因为我不能使用库的类...在这种情况下HttpServlet ... – Brais

回答

0

我尝试了一下IntelliJ版本的类似设置,结果一切正常。您可以尝试不使用扩展名中的全限定名称。使用

public class Servlet extends HttpServlet 

,而不是

public class Servlet extends javax.servlet.http.HttpServlet 

然后将鼠标悬停的HttpServlet与您的鼠标,看看是否自动提示的IntelliJ进口。如果确实如此,则可以使用Alt + Enter完成导入。这可能会榨取IntelliJ以识别依赖关系。您也可以尝试Build - > Make Project来查看是否识别。

您可能还想检查文件 - >项目结构并选择库节点。查看是否列出了依赖关系:javax:servlet-api:3.1.0,junit:junit:4.11,org.hamcrest:hamcrest-core:1.3。

我只在IntelliJ 2016的更高版本上测试过,但它应该可以工作。欢迎回复评论/问题。

+0

谢谢M.Rizzo。我做了你所说的一切,只有一个我没有尝试过的建议,我试图做到,但我不能: - **你也可以在文件 - >项目结构下检查选择库节点。查看是否列出了依赖关系:javax:servlet-api:3.1.0,junit:junit:4.11,org.hamcrest:hamcrest-core:1.3。**当我进入file-> project structure-> libraries那里时是什么都不是,我不知道为什么或我必须做什么,我试图用加号按钮添加它们,但我不知道它们在哪里。 – Brais

+0

Ty M.Rizzo最后,感谢这个答案**我只在IntelliJ 2016的更高版本上测试了它,但它应该可以工作。随意回发评论/问题。**我决定更新我的Intellij,现在一切正常--_ - omg!两天有这个问题,并更新IDE是解决方案...没有评论xD – Brais