Хорошо, это сводит меня с ума... Я работаю над проектом Maven, и у меня есть сторонние JAR-зависимости, которые дают мне ошибки компиляции в IntelliJ, но не в STS.
Моя упрощенная структура проекта выглядит так:
FERPAPortlet
-src
--main
---java
----edu.sandiego.parent
-----FERPAPortlet
---resources
---webapp
----META-INF
----WEB-INF
-----jsp
-----lib <----- 3rd Party JARS are here
-----liferay-display.xml
-----liferay-plugin-package.xml
-----liferay-portlet.xml
-----portlet.xml
-----web.xml
--test
-pom.xml
В SpringSource Tool Suite, если я запускаю compile/package, все работает нормально! На самом деле, если я сначала запущу его в STS, а затем снова открою с помощью IntelliJ, проблема будет решена. Тем не менее, я предпочитаю IntelliJ STS...
Образец ошибки, который я получаю, будет примерно таким, когда я запускаю компиляцию maven:
[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] C:\Users\rico.r-10\Documents\GitHub\github.sandiego.edu\FERPAPortlet\src\main\java\edu\sandiego\parent\FERPAPortlet.java:[3,35] error: package com.sghe.luminis.core.spring does not exist
Однако, когда я перехожу к этой строке, IntelliJ не выделяет ее красным как ошибку, и я действительно могу нажать Ctrl+щелчок, и IntelliJ перейдет к библиотеке.
Я уже добавил библиотеки через «Структура проекта» > «Настройки проекта» > «Модули» > «MyModule» > вкладка «Зависимости».
Что делает STS, чего мне не хватает в IntelliJ?
РЕДАКТИРОВАТЬ: Получилось! Это то, что я сделал. Я удалил папку lib со сторонними банками. Затем я вручную добавил эти файлы Jar через командную строку, например:
mvn install:install-file "-Dfile=C:\luminis5libs\luminis-dal.jar" "-DgroupId=com.sghe.luminis" "-DartifactId=luminis-dal" "-Dversion=1.6.0" "-Dpackaging=jar"
Наконец, я изменил POM, чтобы включить эти зависимости, например:
<dependency>
<groupId>com.sghe.luminis</groupId>
<artifactId>luminis-dal</artifactId>
<version>1.6.0</version>
</dependency>