zoukankan      html  css  js  c++  java
  • Maven 快照及构建自动化

    快照的作用

      一个团队工作负责应用程序的前端应用用户接口工程(app-ui.jar:1.0)),同时他们使用数据服务工程(data-service.jar:1.0)。

      现在负责数据服务的团队可能正在进行修正 bug 或者增强功能,并快速迭代,然后他们几乎每天都会 release 工程库文件到远程仓库中。

    现在如果数据服务团队每天上传新的版本,那么就会有下面的问题:

    • 每次数据服务团队发布了一版更新的代码时,都要告诉应用接口团队。
    • 应用接口团队需要定期更新他们的 pom.xml 来得到更新的版本。

      快照是一个特殊的版本,它表示当前开发的一个副本。与常规版本不同,Maven 为每一次构建从远程仓库中检出一份新的快照版本。现在数据服务团队会将每次更新的代码的快照(例如 data-service:1.0-SNAPSHOT)发布到仓库中,来替换旧的快照 jar 文件。对于快照,每次用户接口团队构建他们的项目时,Maven 将自动获取最新的快照(data-service:1.0-SNAPSHOT)。

    构建自动化 

      快照能保证数据服务是最新的,但是接口工程不能随时被自动构建,有两种方式解决:

      1、在接口工程的 pom 文件里添加一个编译目标来提醒其构建。

      2、使用一个持续集成(CI)的服务器,比如 Hudson或者是Jenkins,来实现自动化创建。

    更新数据服务pom文件:

    <project xmlns="http://maven.apache.org/POM/4.0.0" 
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
       http://maven.apache.org/xsd/maven-4.0.0.xsd">
       <modelVersion>4.0.0</modelVersion>
       <groupId>bus-core-api</groupId>
       <artifactId>bus-core-api</artifactId>
       <version>1.0-SNAPSHOT</version>
       <packaging>jar</packaging>
       <build>
       <plugins>
       <plugin>
       <artifactId>maven-invoker-plugin</artifactId>
       <version>1.6</version>
          <configuration>
             <debug>true</debug>
             <pomIncludes>
                <pomInclude>app-web-ui/pom.xml</pomInclude>
                <pomInclude>app-desktop-ui/pom.xml</pomInclude> 
             </pomIncludes>
          </configuration>
          <executions>
             <execution>
                <id>build</id>
                <goals>
                   <goal>run</goal>
                </goals>
             </execution>
          </executions>
       </plugin>
       </plugins>
       <build>
    </project>

    执行mvn命令

    C:MVNus-core-api>mvn clean package -U

    使用Hudson或者是Jenkins

      Hudson 把每次创建工程看做一个工作。一旦工程代码合入到 svn 或者其他任何的映射到Hudson上的代码源管理工具上,Hudson 便开始一次的创建工作,等到该工作完成后,它将会自动创建其他相关的依赖工作或者依赖工程。

      在上面的例子中,当 bus-core-api 的源代码在 SVN 上有更新时, Hudson 将会启动创建。当创建完成后,Hudson 开始自动寻找其依赖的工程,然后启动 app-web-ui 和 app-desktop-ui 工程。

  • 相关阅读:
    SpringMVC 使用JSR-303进行校验 @Valid
    Hibernate Tools生成注释
    大型网站架构演变和知识体系(转载)
    eclipse从数据库逆向生成Hibernate实体类
    性能测试公众号,欢迎你的加入~
    mysql使用druid监控配置
    (转)面试为什么需要了解JVM
    (转)什么是缓存击穿?
    Mysql推荐使用规范(转)
    java应用监控工具
  • 原文地址:https://www.cnblogs.com/BINGJJFLY/p/8468755.html
Copyright © 2011-2022 走看看