如何在导入到另一个模块的jar中包括测试目录(src/test/)下的Spring bean?
我有几个Maven项目: ms1、ms2、ms3和通用共享。通用共享是一个多模块的Maven项目。它包含几个模块:通用共享utills、通用共享fs等...
在每个子模块中,我都有一个专用的pom。xml以及所需的所有依赖项,在通用共享pom中,我有关于构建和模块的详细信息:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>11</source>
<target>11</target>
</configuration>
</plugin>
</plugins>
</build>
<modules>
<module>general-shared-utills</module>
<module>general-shared-fs</module>
</modules>
似乎我为子模块中的测试(位于src/test中)创建的所有bean都没有导入到Maven模块(例如ms1)。
一个例子:
在子模块general shared utills中,我有以下课程:
在/src/main下:
@Component
public class Shop
@Autowired
private AWSService awsService
@Component
@Profile("prod")
public class AWSService
...
/src/test:
@Component
@Profile("test")
public class AWSServiceMock extends AWSService
在ms1的pom中导入general shared utills模块时,我希望它包括AWSServiceMock类。目前,ms1的测试找不到任何AWSService类型的bean,因为它没有一个带有测试概要文件的AWSService类型的bean:
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'a.x.y.aws.AWSService ' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
我将相关bean(mock)从src/test目录移动到src/main。
我也在maven的网站上找到了这个解决方案。
如果有人有另一个实用的答案,我会很高兴听到并更新帖子的答案。
我有一个多模块maven项目,包含三个模块、和 Core具有以下依赖项定义 我已经为所有三个模块添加了Java9定义,的如下所示: 但是,我不知道如何让的测试类能够在测试执行期间看到类。当尝试测试运行时,找不到类。 如果向的添加需要My.Project.TestUtils;的: 然后在编译时,我得到一个错误,即找不到模块(大概是因为它只是作为测试依赖项引入的)。 在Java9模块化的世界中,如何处
问题内容: 我有两个项目,并且属于该小组。取决于。 为了能够在不依赖外部服务的情况下开发应用程序的UI部分,在其中实现了虚拟DAO (它们返回静态数据,因此我们不必连接到数据库等)。 我们被要求将虚拟类移至。这意味着他们不会被部署到从Web项目构建的战争中。我在maven网站上找到了 这些说明 ,但它们似乎对我不起作用。 在中,我有: 在上运行时,在目标中,我会得到两个jar:和。它们都可以很好地
我有一个Maven项目,包含几个模块,其结构类似于: 我已经在parent在
我曾广泛使用过Maven 目前有5个不同的maven项目,每个项目都有一个不同的pom.xml。到目前为止,它们之间存在依赖关系,如果需要,每一个都指向 中的另一个。 现在我们不喜欢的是 当我们发布子projectA时,我们需要手动修改所有将projectA作为依赖项的项目以使用新版本。Saw Maven有一个版本插件,不知道这会有什么帮助。 作为解决方案,我希望在POM之间有一个更干净的组织,并
问题内容: 我有一个多模块的Maven项目。父POM和单个模块的pom运行正常(因为每个模块中的代码运行正常,没有任何依赖关系问题,目标运行没有任何警告/错误)。现在,我需要为每个模块创建一个jar。 项目结构及其依赖关系大致如下 我遵循了这个 Maven多模块项目-将所有“包”JARS从子模块复制到父级/目标/ 而且,能够将我的所有子模块的jar放入一个文件夹,但是我无法运行任何jar,因为模块
我们的项目结构如下: 相关的JUnit测试位于A-A中。在使用Maven之前,我们必须调整Eclipse中的运行配置(将arguments选项卡中的工作目录设置为A-B,启动应用程序),以便在没有错误的情况下启动所有测试。 现在,当我们尝试运行测试时,无论我们是否在Eclipse中运行测试,我们都会从a-a中的类中得到一个 我的猜测是我们有一个错误的配置的POM和Surefire不能找到所有的类文