У нас есть коллекция проектов модулей 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 еще не успел охватить?