Исходный код для проекта, над которым я работаю, управляется в eclipse, но файлы .class и .war, которые мы фактически используем и отправляем, построены с использованием ant через build.xml файл. Код работает в среде Spring и использует AspectJ для компиляции во времени. Мы работаем с AspectJ 1.6 и Java 1.6 в течение нескольких лет, но сейчас мы пытаемся перейти к использованию Java 1.8 (среда jboss, которую мы устанавливали внутри, использует Java 1.6, но перемещается до 1.8, плюс мы также работаем над тем, чтобы отделить наше приложение от другого приложения, чтобы мы могли работать автономно внутри контейнера причала, где мы предоставляем Java 1.8), но, похоже, проблема заключается в использовании AspectJ и Java 1.8. Я нашел несколько сообщений, которые, похоже, связаны с проблемой, которую мы видим, хотя я не нашел ни одного из них, чтобы предоставить простое решение, которое, похоже, соответствует нашей конкретной ситуации построения (те, которые имеют потенциальные решения вообще всегда ссылаются на нечто вроде maven или других вещей, которые мы не используем).с использованием iajc с java 1.8 JDK - Компаратор не может быть разрешен для типа
Вот вывод ошибки мы видим, при попытке скомпилировать с помощью Open JDK 8 из зулу (8u31 для Windows):
[iajc] C:\GitRepos\NSE_decouple\client\src\com\hp\nonstop\nse\test\cli\sort\PhysicalTargetListByName.java:5 [error] Comparator cannot be resolved to a type
[iajc] public class PhysicalTargetListByName implements Comparator<String>
[iajc] ^^^^^^^^^
[iajc] C:\GitRepos\NSE_decouple\client\src\com\hp\nonstop\nse\test\cli\sort\PhysicalTargetListByName.java:5 [error] The type java.util.Comparator cannot be resolved. It is indirectly referenced from required .class files
[iajc] public class PhysicalTargetListByName implements Comparator<String>
Конкретного код в вопросе ссылается в этой ошибке (я подозреваю, другой код будет провал а также, но эта неудача, кажется, остановить компиляции) является:
public class PhysicalTargetListByName implements Comparator<String>
{
<code not included; the declaration itself seems to be the failure point>
}
в случае проблема была связана с использованием aspectj1.6, я установил последнюю версию AspectJ, а также, что AspectJ 1.8.5, но это не имело никакого значения.
Вещи строят ОК внутри самого затмения, но мы получаем ошибки при попытке построить с помощью муравья, с установкой JAVA_HOME в «c: \ Program Files \ Zulu \ zulu-8» и IAJC_HOME, установленной в «c: \ aspectj1. 8 "перед выполнением команды" ant build "в командной строке. В файле build.xml, мы имеем следующий шаг внутри целевой сборки задачи для выполнения iajc компиляции:
<iajc destdir="${build.dir}" failonerror="true"
showWeaveInfo="${showWeaveInfo.isEnabled}" source="1.6" target="1.6"
debug="true" fork="true" maxmem="256m">
<src path="${instsrc.dir}" />
<exclude name="**/junit/*"/>
<exclude name="**/install/*"/>
<classpath refid="master-classpath"/>
<aspectPath refid="aspectPath"/>
</iajc>
Я также попытался это как с источником и целевым набором для «1,8», а также, но что не имеет никакого значения.
Файл build.xml также содержит:
<path id="aspectPath">
<pathelement location="${lib.dir}/spring-aspects.jar"/>
</path>
и
<path id="master-classpath">
<fileset dir="${lib.dir}">
<include name="*.jar"/>
</fileset>
<fileset dir="${jetty.dir}/lib">
<include name="servlet-api-3.0.jar"/>
<include name="jetty-servlet-8.1.16.v20140903.jar"/>
<include name="jetty-util-8.1.16.v20140903.jar"/>
</fileset>
<fileset dir="${jetty.dir}/lib/jsp">
<include name="javax.servlet.jsp-2.2.0.v201112011158.jar"/>
</fileset>
<pathelement location="${clover.jar}"/>
<pathelement path="${build.dir}"/>
</path>
эксперимент, в котором я заменил iajc> задачу < с задачей в < Javac> вместо позволило построить работать без ошибка (хотя созданный код не был бы сплетен), поэтому кажется, что ошибка связана с смесью AspectJ с java 1.8 (другой эксперимент показывает, что мы можем построить без ошибки при использовании Open JDK 7 и AspectJ).
И помощь, указывающая на то, что нам может понадобиться, чтобы заставить AspectJ работать с сборками Java 1.8, будем очень благодарны!