У нас есть коллекция проектов модулей Java (с использованием JDK11).
Для наших интеграционных тестов есть отдельный проект. Этот проект должен иметь доступ к основному проекту приложения для запуска своих тестов, но мы не хотим добавлять экспорт в основной модуль приложения, потому что он нужен только тогда, когда мы запускаем наши тесты.
Решением было добавить экспорт с помощью compilerArgs в наш проект тестирования интеграции:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven.compiler.plugin.version}</version>
<configuration>
<release>${java.version}</release>
<parameters>true</parameters>
<showDeprecation>true</showDeprecation>
<showWarnings>true</showWarnings>
<compilerArgs>
<arg>--add-exports</arg>
<arg>com.example.application/com.example.application=com.example.integration_tests</arg>
</compilerArgs>
</configuration>
</plugin>
</plugins>
</build>
Это работает для командной строки mvn clean install
. Но, к сожалению, для затмения это не работает. По какой-то причине eclipse игнорирует эти compilerArgs и продолжает выдавать ошибки о том, что основной класс приложения недоступен.
Есть ли способ заставить eclipse использовать эти compilerArgs? Или это какой-то аспект модульной системы, который Eclipse еще не успел охватить?