`
skyful
  • 浏览: 64220 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

结合Maven2进行J2EE项目构建(二)

阅读更多
开发人员要使用内部仓库,只需修改本地工程pom.xml ,在 repository 配置后加上:

<repository>
      <id>companyName</id>
      <url>http:// ${ip}/maven</url>
</repository>




3.每日构建
    为了保证项目质量,尽早的发现项目中的bug,我们需要每日对系统进行构建,这也是我们使用maven的初衷之一,maven的几个命令就可帮助我们完成这项任务,当然我们可以使用持续构建工具与maven结合实现定时自动构建。构建方式:


mvn test
mvn package
mvn install




maven 会自动编译,测试,运行所有的testcase,这也要求我们的开发人员一定要按照规则编写单元测试代码,否则每日构建的意义就不大了。appfuse框架中提供了很好的单元测试代码,包括针对数据库层,业务逻辑层,web展示层等等,如果我们能很好的编写这些单元测试,那么对于系统后续的缺陷管理和控制是大有裨益的。

构建完成后或构建时需要对最新版本的项目进行部署,便于次日安排测试人员进行测试,maven提供多多种部署方式,在 pom.xml进行项目的部署配置,不同的部署方式根据协议的不同,配置方式也有所差异:
以文件方式部署

<project>
        [...]
        <distributionManagement>
            <repository>
                <id>proficio-repository</id>
                <name>Proficio Repository</name>
                <url>file://${basedir}/target/deploy</url>
            </repository>
        </distributionManagement>
        [...]
    </project>




以SSH2方式部署

<project>
        [...]
        <distributionManagement>
            <repository>
                <id>proficio-repository</id>
                <name>Proficio Repository</name>
                <url>scp://sshserver.yourcompany.com/deploy</url>
            </repository>
            </distributionManagement>
        [...]
    </project>




以SFTP方式部署

<project>
    [...]
    <distributionManagement>
        <repository>
            <id>proficio-repository</id>
            <name>Proficio Repository</name>
            <url>sftp://ftpserver.yourcompany.com/deploy</url>
        </repository>
    </distributionManagement>
    [...]
    </project>



以扩展SSH方式部署
 
目前为止上述3中方式已经被Maven包含,所以只要 distributionManagement就可以了,但是使用扩展SSH命令部署的话你不仅需要配置distributionManagement还需要一个build extension,如下
 
<project>
        [...]
        <distributionManagement>
            <repository>
                <id>proficio-repository</id>
                <name>Proficio Repository</name>
                <url>scpexe://sshserver.yourcompany.com/deploy</url>
            </repository>
        </distributionManagement>
        <build>
            <extensions>
                <extension>
                    <groupId>org.apache.maven.wagon</groupId>
                    <artifactId>wagon-ssh-external</artifactId>
                    <version>1.0-alpha-6</version>
                </extension>
            </extensions>
        </build>
        [...]
    </project>



    The build extension specifies the use of the Wagon external SSH provider, which does the work of moving your files to the remote server. Wagon is the general purpose transport mechanism used throughout Maven.
The build extension specifies the use of the Wagon external SSH provider, which does the work of moving your files to the remote server. Wagon is the general purpose transport mechanism used throughout Maven.

以FTP方式部署

<project>
        [...]
        <distributionManagement>
        <repository>
            <id>proficio-repository</id>
            <name>Proficio Repository</name>
            <url>ftp://ftpserver.yourcompany.com/deploy</url>
        </repository>
        </distributionManagement>
        <build>
            <extensions>
                <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-ftp</artifactId>
                <version>1.0-alpha-6</version>
                </extension>
            </extensions>
        </build>
        [...]
    </project>




一旦你配置好了相应的POM你可以执行下列命令来开始部署:
mvn deploy

同时也可通过执行一下命令生成此项目的站点报告,供项目参与人员使用。
mvn site


三. 结论

    maven的强大显而易见,有很多其他的特性本文没有提及,如对各类插件的支持,以及对项目模块划分和继承关系的管理,这些都是maven的特性,也是 maven对项目生命周期的详尽诠释,有兴趣深入的TX可以下载我在附件中提供的教程《Better Builds With Maven2》.同时我也提供我根据appfuse建立的一套项目框架,可在myeclipse环境下使用,大家可以共同探讨完善。

附 1:使用artifactory为Maven2团队开发建立内部开发仓库详解
在真正使用Maven后是为团队进行定制,所以我们不应使用官网的开发库,应在本地建立一个内部开发库对团队的jar包进行管理,所以我们首先搭建一个内部库环境,除文章上面所述的搭建Apache服务器方法外,我们还可以使用artifactory(下载地址:http://www.jfrog.org/sites/artifactory /latest/),一个很好的maven内部库的应用系统,下载后执行bin目录下的artifactory.bat命令即可。启动后可访问控制台http://内部库 ip:8081/artifactory/验证服务是否成功启动。默认的用户名为admin,密码为 password。artifactory最重要的是可配置第三方jar包,在deploy artifacts中加入并制定其groupId和artifactId即可
(不要忘记更改本地的pom.xml文件引入新加的jar包)。
在开发端我们需要更改全局配置文件setting.xml文件,将工程中setting.xml放入本地maven2->conf目录下,配置内部仓库的地址,只需要在setting.xml的mirrors元素中加入以下配置:
 
<mirror>
      <id>emay local</id>
      <mirrorOf>central</mirrorOf>
      <name>emay local artifactory</name>
      <url>http://内部库ip:8081/artifactory/repo</url>
    </mirror>



这里要注意的是,在加入这段代码后我使用的appfuse框架中自带的应用服务器tomcat6进行构建,不能正常运行,报tomcat出错,把这段去掉或者在pom.xml中将应用服务器改为tomcat5.5后运行正常。看来maven还是有不少bug需要改进。

配置完成后再运行mvn install即可正常进行构建,maven会从本地内部库中寻找项目所依赖的jar包。运行mvn clean清除maven生成文件。



附2:maven2命令大全

    validate,验证工程是否正确,所有需要的资源是否可用。
    compile,编译项目的源代码。
    test-compile,编译项目测试代码。
    test,使用已编译的测试代码,测试已编译的源代码。
    package,已发布的格式,如jar,将已编译的源代码打包。
    integration-test,在集成测试可以运行的环境中处理和发布包。
    verify,运行任何检查,验证包是否有效且达到质量标准。
    install,把包安装在本地的repository中,可以被其他工程作为依赖来使用
    deploy,在整合或者发布环境下执行,将最终版本的包拷贝到远程的repository,使得其他的开发者或者工程可以共享。
    generate-sources,产生应用需要的任何额外的源代码,如xdoclet。
分享到:
评论

相关推荐

    maven+j2ee+nexus的搭建

    通过结合Maven、Nexus和Eclipse,开发者能够构建高效且可复用的J2EE项目,实现标准化的开发流程,提高代码质量,并确保依赖管理的稳定性。学习并掌握这些工具的使用,对于任何J2EE开发者来说都是极其重要的技能。

    j2ee maven 结合gulp构建工具构建 war 自动刷新浏览器缓存

    将Maven与Gulp结合,可以在J2EE项目中利用Gulp的强大功能。在Maven的生命周期中,我们可以定义一个Gulp任务作为构建的一部分。例如,我们可以在`pom.xml`文件中添加一个`maven-antrun-plugin`或`maven-exec-plugin`...

    Maven2+Eclipse开发J2EE

    Maven通过解析POM文件,自动完成项目构建的各个阶段。 #### Maven项目结构与生命周期 Maven项目的结构清晰规范,主要包括`src/main`和`src/test`两个主要目录,分别存放主应用代码和测试代码,而`target`目录则...

    j2ee项目开发案例

    9. **Maven或Gradle**:这些构建工具可以帮助开发者自动化构建过程,包括编译、测试、打包和部署J2EE项目。它们管理依赖关系,使得项目构建更加高效。 10. **容器与服务器**:J2EE应用通常运行在应用服务器上,如...

    J2EE复习积累(五)-Maven3.0.5(二)-简单项目练习

    通过以上介绍,我们可以看出Maven 3.0.5在J2EE开发中的重要作用,它使得项目构建更加标准化和自动化,降低了开发者的维护成本。在实际开发中,结合源码和工具使用,可以更高效地管理项目及其依赖,提高开发效率。

    how to create a j2ee with maven

    总的来说,通过Maven创建J2EE项目,我们可以充分利用其强大的依赖管理和构建功能,简化项目构建流程,提高开发效率。同时,Maven的插件体系也使得集成各种工具和自动化任务变得轻松,进一步提升了开发体验。结合源码...

    Maven构建struts2最简单例子

    在这个"使用Maven构建Struts2最简单例子"中,我们将探讨如何结合这两个工具来创建一个基础的J2EE应用。 首先,让我们深入了解Maven。Maven使用一个称为POM(Project Object Model)的XML文件来定义项目的配置信息,...

    软件测试技术在J2EE项目中的应用

    在J2EE项目中,可以使用JUnit进行Java类的单元测试,它提供了断言、测试套件和异常处理等功能,便于开发者编写和运行测试用例。 2. **集成测试**:当单个组件通过单元测试后,需要验证它们之间的交互。JUnit和...

    j2ee实例 j2ee实例j2ee实例

    你将学习如何使用这些工具进行开发,以及如何使用Maven或Gradle等构建工具来管理和构建项目。 综上所述,J2EE实例涵盖了企业级开发的多个方面,包括组件模型、分层架构、分布式计算、消息传递、资源管理和安全性。...

    j2ee项目模块化开发

    在J2EE项目中,Maven可以用于创建项目模块,定义依赖关系,构建和打包应用。在描述中提到,首先需要创建一个Maven项目组,删除不必要的文件,只保留pom.xml,这是Maven项目的配置文件,用来管理项目的构建、报告和...

    maven-definitive-guide

    通过实际操作,读者可以更直观地看到Maven如何处理项目构建,如何管理依赖,以及如何自动化测试和部署。 总之,《Maven权威指南》是学习和掌握Maven的宝贵资源,无论你是Java开发者,还是想要理解现代构建工具的...

    maven项目demo

    总的来说,通过MyEclipse 2014搭建Maven项目,可以充分利用Maven的强大功能,如自动化构建、依赖管理等,同时结合MyEclipse的便利性,为Java Web应用开发提供高效的工作流程。在实际开发过程中,你可能还需要配置...

    j2ee chm api ejb jboss maven

    标题中的“j2ee chm api ejb jboss maven”揭示了几个关键的IT概念,这些...学习和实践J2EE API、EJB、JBoss应用服务器的使用,以及利用Maven进行项目管理,将使开发者具备构建复杂、可扩展且高效的企业级应用的能力。

    J2EE开发之常用开源项目介绍

    6. **Apache Maven**:Maven是一个项目管理和综合工具,它简化了构建过程,通过POM(Project Object Model)文件管理项目的依赖关系。Maven提供了标准化的构建流程,方便开发者管理和维护项目。 7. **Git**:Git是...

    J2EE应用实践教程 第二章代码

    通过这个实践教程,你将深入理解J2EE应用的开发流程,以及如何有效地结合Struts2和Hibernate来构建一个功能完善的Web应用。这个过程中,你不仅会学习到具体的编程技巧,还会对软件设计模式和企业级开发有更深刻的...

    使用 AppFuse 快速构建 J2EE 应用

    6. **Maven 支持**:基于 Maven 构建,使得项目依赖管理和构建过程标准化,易于团队协作。 7. **持续集成友好**:与 Jenkins、Git 等持续集成工具无缝集成,便于自动化部署和版本控制。 8. **文档齐全**:AppFuse ...

    maven 详细教程 实战 例子 电子书

    通过阅读"Maven2详细教程.doc"、"Maven+in+action.pdf"、"Maven2+Eclipse开发J2EE.pdf"和"maven入门时写的博客.pdf"这些资料,你可以深入理解Maven的各个方面,从基础到高级,从理论到实践,掌握这个强大的项目管理...

    J2EE专业项目实例开发

    在J2EE专业项目实例开发中,我们主要探讨的是如何运用Java企业版(Java 2 Platform, Enterprise Edition,简称J2EE)技术来构建大型、分布式的企业级应用程序。J2EE是一个多层架构的平台,它为开发和部署可移植、...

Global site tag (gtag.js) - Google Analytics