2016-09-21 65 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