Я использую Maven для управления своим веб-приложением с помощью Spring.У меня есть две основные директории - / src / main / java и / src / test / java, где находятся все тестируемые компоненты (тесты, макеты и т. Д.).Тесты проходят гладко как из командной строки maven, так и из моей IDE.Проблема в том, что когда я развертываю свое приложение и получаю это сообщение:
java.lang.IllegalStateException: More than one bean of type [pl.m4ks.comics.dao.IComicDAO] found, you have to specify the name of the bean (@SpringBean(name="foo")) in order to resolve this conflict. Matched beans: comicDAO,comicDAOMock
at org.apache.wicket.spring.injection.annot.AnnotProxyFieldValueFactory.getBeanNameOfClass(AnnotProxyFieldValueFactory.java:231)
Но проблема в том, что comicDAOMock находится в каталоге / scr / test и не должен быть виден во время не тестового развертывания!Я использую
<context:component-scan base-package="pl.m4ks.comics"/>
<context:annotation-config />
в моем context.xml (для тестирования я использую другой контекст, в котором бины подключаются вручную).
В pom.xml у меня есть:
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/java</directory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
<testResource>
<directory>src/test/resources</directory>
<includes>
<include>**</include>
</includes>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
</testResources>
Так что я думал, что разделил их.Как я могу решить эту проблему, я имею в виду полностью исключить все средства тестирования из моего запуска развертывания (я запускаю по команде 'mvn jetty: run')