如何使用maven设置多项目结构?

时间:2016-12-31 04:26:49

标签: maven jsf build integration-testing wildfly-9

我相当缺乏经验,对构建工具的全世界都是新手,所以这就是我的情况:我正在开发一个带有JSF,PrimeFaces和Hibernate的webapp,在wildfly-9.0.2-final上。所有java文件(包括ManagedBeans,DAO,Model类等)目前都在一个名为MyApp-CORE的常规eclipse Java项目中。该项目中没有html或任何其他资源,但是所有第三方库,如PrimeFaces,commons-xy等。然后我得到了两个包含所有.xhtml文件和内容的动态Web项目。两个Web项目都在其构建路径中包含CORE(所有这些都通过eclipse内置工具完成)。到目前为止我基本上都跟着Structure for multiple JSF projects with shared code了。所有项目都使用Git进行版本控制。我现在问自己如何对整个事情进行整理,以及如何正确地包括测试。最终结果应该是:

  1. 我想为每个Web项目构建一个包含CORE依赖项及其所有传递依赖项的构建文件,创建一个.war文件并在生产系统或本地部署它(根据我希望能够的某些参数)保持)。
  2. 然后,这个构建文件可以测试并构建CORE,然后构建.war文件。
  3. 由于我使用的是JSF,因此大多数测试的唯一选择是JSFUnit。我应该单独测试每个Web项目并将所有测试用例放在那里(这将是高度冗余的,因为它们大致相同,只是一些功能不同)或者我应该创建一个名为MyApp-TEST的单独Web项目来测试CORE.jar以及 - 取决于某些配置 - 每个Web项目。
  4. 我已经创建了一个结构,可以将核心包含在Web项目中,但遗憾的是,当我将其作为来自本地maven存储库的依赖项包含在内时,我放弃了wildfly中热部署的好处。 所以,总结一下:

    • 这种设置的最佳做法是什么,最终会导致持续的集成场景?
    • 我应该如何包含测试用例(测试实际UI行为的完整集成测试)?
    • 哪个工具(Maven,Gradle,Ant等)最适合这项任务?
    • 继续使用热部署以实现顺利开发?

    提前感谢任何评论,提示或分享经验!

0 个答案:

没有答案