我有一个包含许多模块的Maven项目。在构建时,我有一个参数来确定从哪个目录配置文件中复制它们,具体取决于它将运行的环境 - 即UAT,DEV,TEST等。我不想使用配置文件。现在,我想将所有集成测试打包到一个单独的jar中,该jar可以从命令行以及集成测试阶段执行。基本上只有一个测试类,其中一个方法可以执行类似
的操作 Class.forName("...").getMethod("main").invoke(null, args);
唯一的问题是,因为我不想使用配置文件Id必须添加/删除对测试解决方案jar的依赖性,具体取决于我是否要运行集成测试。我想做点什么
mvn clean install -Denv=IT
让它成为。有办法吗?
答案 0 :(得分:0)
在Maven中运行不同类型的构建的标准机制是使用配置文件(Maven是一个高度自以为是的构建框架,所以你被迫遵守其规则)
您似乎也在构建二进制文件以匹配您要部署的系统。这通常是一个坏主意,建议您查看一些允许应用程序运行时配置的机制。 (在J2EE中有JNDI,但可能只是一个简单的属性文件)。这允许您认证一个理想情况下被推入共享存储库的单个二进制文件,以便在开发,测试和生产之间共享。