Мы используем Gradle для управления зависимостями и для развертывания приложения. Наше приложение представляет собой обычное Java-приложение с общедоступным методом main(). Eclipse позволяет запускать приложение непосредственно через контекстное меню (без Gradle).Конфликт с тестовыми классами с обычным приложением
Однако Eclipse добавляет классы тестов в путь класса. Поскольку мы используем аннотации Spring для тестовых классов, а для реальных приложений возникают конфликты. Например. соединение с базой данных создается дважды, что приводит к ошибкам запуска.
Есть ли способ сказать Eclipse исключить классы тестов для добавления в путь класса?
Я знаю, что есть приложения для плагинов градиента, которые позволяют компилировать и запускать приложение. Однако нам нужно запускать несколько приложений параллельно, что приводит к проблемам с блокировкой с помощью плагина gradle.
Редактировать: Я был неясно: проблема в том, что проект (libs.core), от которого зависит фактический проект (applications.core), содержит включенные классы тестов. Тест-классы фактического проекта не включены в путь Java-класса.
Для всех проектов мы имеем следующую структуру:
Java Classes: src/main/java/
Test Classes: src/test/java
.classpath файл файл проект 'libs.core' содержит следующее:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="output" path=".eclipse-classes"/>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="src" path="src/main/resources"/>
<classpathentry kind="src" path="src/test/java"/>
<classpathentry kind="src" path="src/test/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER" exported="true"/>
<classpathentry sourcepath="[path to gradle cache]commons-logging-1.1.3-sources.jar" kind="lib" path="[path to gradle cache]commons-logging-1.1.3.jar" exported="true"/>
[other dependencies]
</classpath>
.classpath файл из Файл проекта "applications.core" содержит:
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="output" path=".eclipse-classes"/>
<classpathentry kind="src" path="src/main/java"/>
<classpathentry kind="src" path="src/main/resources"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER" exported="true"/>
<classpathentry kind="src" path="/libs.core" exported="true"/>
<classpathentry sourcepath="[path to gradle cache]commons-logging-1.1.3-sources.jar" kind="lib" path="[path to gradle cache]commons-logging-1.1.3.jar" exported="true"/>
[other dependencies]
</classpath>
Я отредактировал мой вопрос.Для меня было очевидным, чтобы отдельные классы испытаний отличались от других, поэтому я забыл об этом. Я хотел бы предотвратить добавление разных проектов, поэтому ваш первый подход кажется лучше. Можете ли вы дать мне подсказку о том, как я могу исключить конкретную исходную папку ссылочного проекта в моей конфигурации запуска? –