Ладно, сейчас меня раздражает немного из-за Maven 2. Настройка проекта, которую мы получили, проста: «основной» проект, который зависит как от «пакетного», так и от «веб» проекта, и «ушной» проект, который зависит от «сети». Довольно простые вещи.
Что ж, поскольку ядро используется довольно часто, и это первый раз, когда группа фактически выполняет TDD (тестовую разработку), было создано немало макетов, но в основном в веб-проекте - пакетный проект довольно просто на данный момент.
Этот текущий (скрытый) XML включен в веб-пометку, чтобы включить основной проект в качестве зависимости:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>XYZ-core</artifactId>
<version>${project.version}</version>
</dependency>
Пом работает, если просто это включено, как и остальные файлы JAR включены. Один из jar-файлов - это сервлет api, 2.4 - версия:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${version.servlet-api}</version>
<scope>provided</scope>
</dependency>
Это устанавливается в объеме, указанном веб-контейнером. Там нет сюрпризов. Имея только это в веб-помпе, он запускает тесты и устанавливает без проблем.
Но теперь в сети есть все эти издевательства. Пакет может использовать некоторые из этих издевательств тоже. Поэтому, естественно, я хочу поместить ядро tests в качестве проверки объема как в пакете, так и в сети, чтобы я мог перенести макеты (которые имитируют функциональность ядра) в тест ядра, чтобы они могли быть общими для проектов. Следующий фрагмент (скрытый) работает в пакетном проекте:
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>XYZ-core</artifactId>
<classifier>tests</classifier>
<version>${project.version}</version>
<scope>test</scope>
</dependency>
Однако, когда я добавляю это в веб-pom, я получаю все это, когда пытаюсь создать веб.
XYZ.java: [33,16] не может разрешить символьный символ: class HttpServletRequest
Если он удален, веб-сборка успешно выполняется.
Есть идеи? Maven версия 2.0.4. Я могу попытаться обновить, но это будет много хлопот.
РЕДАКТИРОВАТЬ: основные классы веб не в состоянии скомпилировать с этой ошибкой (также HttpServletResponse также не найден). Даже если тесты пропущены (-Dmaven.test.skip = true), эта ошибка возникает.