Tag: continuous integration

有没有办法让Maven构建独立于网络连接?

我正在持续集成环境中工作,部分自动构建过程包括Maven托管项目的编译。 我想知道的是,是否有办法使Maven构建独立于网络连接。 目前我们需要在存储库中安装所有需要的jar,但问题是Maven尝试检查插件更新,如果最终连接断开,则会导致构建失败。

junit:forkMode =“once”对测试正确性的影响

我想减少构建(使用ant)运行测试所需的时间。 目前我正在使用默认的forkMode ,它在每个测试类 ( perTest ) 上分配一个新的vm 。 我正在考虑切换到forkMode=”once”但我不确定这是否会以某种方式结合测试,并且可能在运行我的测试后给出假阳性和/或假阴性结果。 问题: 每个测试用例是否会获得一个新的ClassLoader,以便以前运行的所有静态引用都不再可访问/可见? 还有其他导致测试依赖/耦合的测试方法可能会改变行为(除了我没有使用的本机库加载) 垃圾收集/定型怎么样,它们是在每次测试后运行的吗? (我不依赖它们,但我只想得到完整的图片) UPDATE 根据当前的答案,当使用forkMode时,似乎junit总是在每个vm / fork的所有测试用例之间共享一个类加载器。 (所以forkMode =“once”确实意味着所有测试都有一个类加载器) 这有许多优点(测试速度更快,并且可能导致测试因静态耦合而失败)但也存在一些缺点(静态耦合只有在使用共享类加载器时才会起作用 – >误报)

Maven构建仅更改文件

可以说我有类似下面的模块结构 Modules ->utils ->domain ->client ->services ->deploy (this is at the module level) 现在,客户端需要构建所有模块, ie utils, domain, client, services,因为我正在加载所有上述模块的jar,以便fianlly lanch客户端 并且所有jar子都在模块部署中组装。 我的问题是,如果我在服务中改变任何东西,那么有没有办法从deploy maven运行构建时可以认识到它必须只构建services然后构建它并将其部署在部署文件夹中?

我可以将Maven中的属性(在settings.xml中定义的密码)注入到我的Spring容器中吗?

我通过我在〜/ .m2 / settings.xml中定义的属性(可能在任何地方,包括pom.xml)为我的部署插件定义服务器的密码。 我想在集成测试中使用相同的属性。 有办法吗? 如果没有,是否有方便的方式在Maven和TestNG之间共享属性? 我想编写一个可以在不同的持续集成服务器上运行的不错的测试套件,指向不同的远程主机(开发,测试,登台和生产),而无需修改代码。 我在settings.xml中为远程服务定义凭据: http://my.company.com my-un my-pw 我希望能够使用以下方法引用我的单元/集成测试(src / test / resources)中的属性: <beans…. 这样做有什么选择吗? 有没有其他人尝过这个? 我正在编写很多REST测试,需要在我的测试中进行授权。 谢谢!