Я хочу использовать maven для создания проектов, в которых есть нерешенные проблемы компиляции.
Основная цель — упаковать и развернуть или запустить приложения, используя какие-то заглушки для классов, содержащих ошибки компиляции, как, насколько я понимаю, делает Eclipse (спасибо JDT Core).
Я настраиваю подключаемый модуль компилятора Java maven в соответствии с документацией Apache Maven по адресу с использованием не -Компилятор Java для использования компилятора Eclipse. Думая, что, возможно, следует установить некоторые аргументы для изменения поведения компилятора/построителя, я читал Помощь Eclipse — компиляция кода Java, но я не понимаю, какой вариант компилятора/построителя или их комбинация помогают.
Пока что следующая конфигурация плагинов компилятора maven java компилируется с использованием компилятора eclipse и упаковывает приложение, включая сгенерированный .class (байт-код jvm) только для классов java без ошибок компиляции. Чтобы получить такое поведение, просто нужно использовать компилятор eclipse (см.compileId и зависимость) и установить failOnError=false
.
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<compilerId>eclipse</compilerId>
<source>1.7</source>
<target>1.7</target>
<optimize>true</optimize>
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
<failOnError>false</failOnError>
<compilerArguments>
<org.eclipse.jdt.core.compiler.problem.fatalOptionalError>disabled</org.eclipse.jdt.core.compiler.problem.fatalOptionalError>
<org.eclipse.jdt.core.compiler.problem.forbiddenReference>ignore</org.eclipse.jdt.core.compiler.problem.forbiddenReference>
</compilerArguments>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-eclipse</artifactId>
<version>2.3</version>
</dependency>
</dependencies>
</plugin>
С этой конфигурацией я мог бы запускать Java-приложение, если при выполнении не используются классы, не включенные для ошибок компиляции (поскольку заглушки не генерируются), но в контейнере Java EE загрузка классов завершится ошибкой, поэтому приложение никогда не может быть развернуто .
Я ценю любую помощь в этом.
failOnError
false, на этапе компиляции все ошибки компиляции отображаются как предупреждения, как и предполагалось, и завершается упаковка с сообщением об успешном завершении для всего проекта. При значении true отображаются только ошибки компиляции, такие как проблемы с импортом, но ничего о структуре проектов или зависимостях между ними. - person Guillermo   schedule 09.06.2014