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

Maven如何指定工程进行单元测试构建

    博客分类:
  • Java
阅读更多
引言:
去查找这个问题,是因为在使用hudson的持续集成环境时,执行下面的命令:
mvn clean compile test sonar:sonar

总是会报,类似的工程依赖的错误:
   1) com.alibaba.china.app:avatar.bundle.war:war:1.0-SNAPSHOT

  Try downloading the file manually from the project website.

  Then, install it using the command: 
      mvn install:install-file -DgroupId=com.alibaba.china.app -DartifactId=avatar.bundle.war -Dversion=1.0-SNAPSHOT -Dpackaging=war -Dfile=/path/to/file

  Alternatively, if you host your own repository you can deploy the file there: 
      mvn deploy:deploy-file -DgroupId=com.alibaba.china.app -DartifactId=avatar.bundle.war -Dversion=1.0-SNAPSHOT -Dpackaging=war -Dfile=/path/to/file -Durl=[url] -DrepositoryId=[id]

  Path to dependency: 
  	1) com.alibaba.china.app:avatar.deploy:jar:1.0-SNAPSHOT
  	2) com.alibaba.china.app:avatar.bundle.war:war:1.0-SNAPSHOT

----------
1 required artifact is missing.

,原因分析:
由于hudson的持续集成环境是整个部门进行公用,而工程的特殊性是要依赖二方库,在不同的时间段编译时,不同的需求或者项目所依赖的同一个二方库可能是不一样的,但由于mvn中指定的版本是一样的(统一用了1.0-SNAPSHOT版本),导致了在某一个时刻,一些应用的持续集成是失败的。为了解决这个问题,当时是采用了在每次工程构建时,将二方库进行清理,再进行持续构建。但这样的做法,却导致了出现上面的问题。
    因为deploy工程需要从mvn仓库中寻找bundle.war工程,而bundle.war工程却是需要通过mvn install 方式将包安装到mvn 仓库,将mvn 仓库清理后,bundle.war的war包自然也找不到了,所以depoloy构建时就报错了。
    分析:
    deploy工程在我们的应用中只是包含模板文件,部署的配置文件,是没有单元测试文件进行运行的。所以能否在构建时将指定的工程进行持续构建,不就解决了这个问题?
    于是从网上搜索Maven指定工程进行编译、测试构建的方式,找到了http;l://markmail.org/message/vf3qaxnjtxelj3b2这样的一篇文章,参照里面的配置在pom文件,增加profile,并使用-P 命令进行执行,但结果却不起作用。
    执行了mvn -h,找到
   -pl,--projects     Build specified reactor projects  instead of all projects

  可以对指定工程进行操作。开始试验单个工程:
  
   mvn test -pl biz/cases

    发现命令行输出,只对biz/cases工程进行了单元测试,成功。
    针对多个工程:
   
   mvn test -pl biz/cases biz/common 

    结果并没有按照预期的两个工程进行单元测试,而是直接抛出了错误,提示Invalid task错误。
    猜想应该是后面的多个工程的格式有问题,因为mvn对于空格之间的内容,是当作参数来进行执行。
    尝试:   
  
 mvn test -pl biz/cases,biz/common

     大功告成,OK。
     后续的hudson配置就比较简单了,在工程配置界面里,填写的mvn命令下,增加-pl选项,将你想要执行构建的工程加上去,之后点击保存,再重新构建。如图:
  




 

  • 大小: 15.7 KB
分享到:
评论

相关推荐

    maven构建项目工程

    在"Maven构建项目工程"中,我们可以深入了解Maven如何帮助我们快速、简便地创建和管理项目。 首先,创建一个新的Maven项目可以使用`mvn archetype:create`命令。在这个例子中,我们使用了`-DgroupId=org.lzk.ssh`和...

    Maven聚合工程源码

    "Maven聚合工程源码"是指一个包含多个子项目的Maven工程,这些子项目共享同一个父POM(Project Object Model),用于统一管理和构建。 在Maven聚合工程中,父POM通常不包含任何代码,而是作为子项目之间的协调者。...

    Maven构建的分布式demo

    11. **测试与监控**:在Maven构建过程中,可以引入JUnit进行单元测试,Mockito进行模拟测试,确保代码质量。同时,通过Prometheus、Grafana等工具,我们可以监控分布式系统的运行状态,及时发现问题。 总结,Maven...

    maven多工程搭建过程

    Maven是一个基于项目对象模型(Project Object Model,POM)的概念,它能够自动化构建、测试、部署和文档生成。通过定义项目依赖关系和构建生命周期,Maven简化了大型项目的管理。 二、Idea中的Maven集成 IntelliJ ...

    Spring in Action 使用Maven 构建Spring 工程

    在Maven构建的工程中,我们可以使用XML配置文件(通常命名为`beans.xml`)来定义bean及其依赖关系,或者使用Java配置类,这使得配置更加灵活且易于测试。Spring容器会根据配置自动实例化bean,并负责它们的生命周期...

    maven工程

    在Maven工程中,测试通常分为单元测试和集成测试,对应的目录结构为“src/test/java”用于存放测试代码,而“src/test/resources”用于放置测试所需的资源文件。 **详细知识点:** 1. **Maven项目对象模型(POM)*...

    hibernate+maven demo项目工程

    【hibernate+maven demo项目工程】是一个基于Hibernate ORM框架和Maven构建工具的示例项目,旨在帮助开发者理解和实践如何在实际开发中整合这两项技术。该项目的主要目的是展示如何利用Maven管理依赖,以及如何配置...

    spring+maven项目工程

    Maven则是一个强大的项目管理和构建工具,它帮助开发者管理依赖、构建项目以及执行自动化测试。本项目工程"spring+maven"整合了这两者,以实现高效且易于维护的Java应用。 首先,让我们深入理解Spring框架的核心...

    maven工程转web工程

    在Java开发领域,Maven是一个广泛使用的构建工具,它能够帮助开发者管理项目依赖、构建工件以及执行自动化测试。然而,有时我们可能需要将一个普通的Maven工程转换为Web工程,以便于部署到Web服务器上运行。这个过程...

    maven构建web工程

    ** Maven构建Web工程详解 ** Maven是一款强大的项目管理和依赖管理工具,广泛应用于Java开发领域。它通过统一的构建过程和约定优于配置的原则,极大地简化了项目的构建、编译、测试和部署流程。在本篇内容中,我们...

    mavenWeb空项目

    【标题】"mavenWeb空项目"所涉及的知识点主要...综上所述,"mavenWeb空项目"是一个包含Java Web开发基础的项目模板,利用Maven进行构建管理和单元测试,为开发者提供了一个良好的起点,便于快速开发和迭代Web应用程序。

    Maven初识,核心概念,构建多模块系统

    POM(Project Object Model,项目对象模型)是Maven工程的核心部分,是一个以XML格式编写的文件,包含了项目的描述信息。POM文件中声明了项目的基本信息,如何构建项目,以及项目所需的依赖关系。此外,POM还包含...

    第一个maven工程案例

    通过本案例,你可以学习如何创建一个基础的Maven工程,理解`pom.xml`的配置,并了解Maven的生命周期、依赖管理和构建过程。结合提供的`MavenTest`源码,你可以动手实践,进一步加深对Maven的理解。

    Maven依赖管理项目构建工具.pdf

    四、基于IDEA进行Maven工程构建 1. 构建概念和构建过程 Maven的构建过程包括clean(清理)、compile(编译)、test(测试)、package(打包)、install(安装到本地仓库)和deploy(部署到远程仓库)。这些阶段对应...

    springboot创建maven聚合工程

    Spring Boot 创建 Maven 聚合工程是构建大型、模块化应用程序的一种有效方式。在这个过程中,我们将探讨如何使用 Spring Initializr 和 Maven 来构建一个包含多个子模块的父工程,以便更好地管理和组织代码。 首先...

    手动创建maven工程

    本资源提供了一个手动创建的Maven工程示例,有助于初学者理解和掌握如何从零开始构建Maven项目。 首先,我们要理解Maven的核心概念——Project Object Model (POM)。POM是Maven项目的基本配置单元,包含了项目信息...

    maven工程小例子

    【标题】"maven工程小例子"涉及到的是Java开发中的构建工具Maven的应用。Maven是一个项目管理和综合工具,它简化了构建、依赖管理和项目的生命周期。在Java开发中,Maven通过XML格式的配置文件(pom.xml)来管理项目...

    maven工程组织结构

    Maven工程组织结构是Java开发中一个重要的概念,它定义了项目源码、资源、配置以及构建过程的标准布局。这种结构使得项目的管理和维护更加规范,提高了团队间的协作效率。以下将详细解析Maven工程的模块化目录结构...

    java maven工程 spring boot 学习源码

    - src/test/java:测试代码目录,使用JUnit或其他测试框架进行单元测试或集成测试。 - pom.xml:Maven的项目对象模型文件,定义了项目的依赖和构建过程。 通过这个学习源码,你可以学习到如何组织Spring Boot的...

    maven搭建SSH工程

    - 使用Maven的生命周期命令,如`mvn clean compile`进行编译,`mvn test`执行单元测试,`mvn package`打包成war文件。 - 将war文件部署到Tomcat或其他Servlet容器中运行。 【标签】:“源码”、“工具” 源码在...

Global site tag (gtag.js) - Google Analytics