Answers:
直到以后不要打扰原型
有关您需要了解的有关Maven的所有信息,请阅读其网站上的一些书籍。但是,这对于您要实现的目标有些过高。
首先,请按照Web应用程序的标准Maven结构对Web应用程序进行布局,如下所示。(您不需要Maven原型,它只是一堆标准文件夹,您可以在2分钟内完成创建)。
src/main/java
-包含您的生产Java代码src/main/resources
-包含您的生产类路径资源(例如Spring上下文)src/main/webapp
-(包含WEB-INF / web.xml但没有lib文件夹)src/test/java
-包含您的测试Java代码src/test/resources
-包含您的测试资源(例如,用于Web服务测试的XML提要示例)基本插件
下一步是选择一堆插件。显然,通常的怀疑者是那些支持清理,编译和资源的人(作为Maven的一部分出现,但您可以对其进行配置)。然后,您将拥有surefire单元测试器和WAR插件。这足以创建一个非常基本的Web应用程序。
更高级的插件
下一步是介绍Findbugs和PMD插件,这将使您的代码更完整,并报告各种潜在问题。您可能需要JXR来交叉引用源代码,使用标记列表来跟踪TODO和REFACTOR标记,等等。首先...
...将Jetty插件用于Web应用程序
使用Jetty插件在IDE中运行WAR文件,以便于调试。它既快速又小巧,可以快速完成工作。将Jetty作为您的Maven构建的一部分,使您的项目能够在任何计算机上进行测试,而无需配置一些复杂的Servers面板的IDE。它还允许您声明对其他WAR文件的依赖关系,这又意味着您可以使用单个命令“ mvn clean jetty:run”生成包含多个Web应用程序的完整工作环境。这在任何地方都可以使用,您甚至可以提供测试JNDI配置,以便可以从外部配置Spring注入的数据源。如果您将此Jetty方法与标准的演示HTML页面结合使用(src/test/resources/demo.html
),您将节省大量开发人员的时间,以尝试获得可运行的本地环境。一个命令,您就完成了。简单。
配置您的IDE
使用Maven可以很容易,因为所有大公司都支持它:Eclipse,Netbeans,当然还有我个人最喜欢的Intellij。只要将您的IDE指向pom.xml,它就会为您列出所有列出的依赖项。不再为之烦恼WEB-INF/lib
。在Eclipse中,通常使用File | File。导入... | Maven项目| pom.xml。
与Hudson集成
首先安装Hudson(这只是一个Web应用程序),然后定位您的版本控制系统,以使其签出适当的版本。最后一步是配置它,以便它使用Maven进行构建。显然,必须将Maven安装在您的构建计算机上(假设它与开发计算机不同)。
哈德森只做快照构建
让Hudson执行快照构建,并将发布构建留给手动过程。使用该方法将意味着开发人员可以在快照修订版(例如1.0.0-SNAPSHOT)下共享其代码,并且只有在能够通过构建时,它才可以共享到团队存储库中。通常,Hudson将执行“ MVN干净部署”,尽管包括“站点”目标也可能是您过程的一部分,因为它将为每个构建版本创建一个小型项目网站。团队中的开发人员将通过Maven依赖管理过程将更新后的快照构建自动包含到他们的项目中。
Hudson提供了大量可以支持各种指标的插件。我个人最喜欢的是随时间跟踪每个项目的通过测试次数。很高兴向管理层表明,您的单元测试数量和覆盖范围正在不断增加。
通用设置指南
将您的存储库至少分为以下结构:
开发人员用户帐户不应能够写入团队存储库(快照或发行版)。如果有急事,这将使开发人员可以绕开Hudson,并将很快成为常态。
确保始终下载所有第三方的源代码,javadocs和SHA签名。Jarvana对于所有难以找到的类都是出色的资源库浏览器。
考虑安装诸如Nexus或Artifactory之类的存储库管理器,以更好地控制您不断增长的存储库。
Maven提供了大量原型
mvn archetype:generate
将打印可用列表。
普通Java原型与J2EE原型之间的主要区别在于,将生成jsp和图像的目录。如果您开始一个新的J2EE项目,请考虑从一开始就使用其中之一。
随着项目的增长,您可能会添加更多的依赖项。我个人更喜欢从最小的依赖关系集合开始(例如J2EE基本原型),然后逐渐添加我需要的东西。
我已经从一个基本的原型开始并添加了所有的位,从而做到了这一点,并且我相当确定这不是一个很好的方法。但是我也觉得这很尴尬。除非您已经“精通秘诀”,否则很难选择一个好的原型。就我的口味而言,这有点像巫师的知识(而不是明智的发现技术信息)……
Maven提供了一种从称为Archetypes的模板创建项目的方法。您可以使用该命令mvn archetype:generate
以交互方式选择一个。您也可以直接指定一个。
mvn archetype:generate \
-DarchetypeGroupId=org.apache.maven.archetypes \
-DarchetypeArtifactId=maven-archetype-j2ee-simple \
-DarchetypeVersion=1.0
全部在一线。