• <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • Maven教程
    Maven常用命令應用
    Maven修改倉庫地址
    使用Eclipse創建Maven項目
    Maven插件
    Maven打包
    Maven項目導入及轉換

    Maven自動化構建

     

     

    自動化構建定義了這樣一種場景: 在一個項目成功構建完成后,其相關的依賴工程即開始構建,這樣可以保證其依賴項目的穩定。

     

    比如一個團隊正在開發一個項目 bus-core-api, 并且有其他兩個項目 app-web-ui 和 app-desktop-ui 依賴于這個項目。

     

    app-web-ui 項目使用的是 bus-core-api 項目的 1.0 快照:

     

    <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>app-web-ui</groupId>
       <artifactId>app-web-ui</artifactId>
       <version>1.0</version>
       <packaging>jar</packaging>
       <dependencies>
          <dependency>
          <groupId>bus-core-api</groupId>
             <artifactId>bus-core-api</artifactId>
             <version>1.0-SNAPSHOT</version>
          </dependency>
       </dependencies>
    </project>

     

    app-desktop-ui 項目使用的是 bus-core-api 項目的 1.0 快照:

     

    <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>app-desktop-ui</groupId>
       <artifactId>app-desktop-ui</artifactId>
       <version>1.0</version>
       <packaging>jar</packaging>
       <dependencies>
          <dependency>
          <groupId>bus-core-api</groupId>
             <artifactId>bus-core-api</artifactId>
             <version>1.0-SNAPSHOT</version>
          </dependency>
       </dependencies>
    </project>

     

    bus-core-api 項目:

     

    <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>   
    </project>

     

    現在 app-web-ui 和 app-desktop-ui 項目的團隊要求不管 bus-core-api 項目何時變化,他們的構建過程都應當可以啟動。

     

    使用快照可以確保最新的 bus-core-api 項目被使用,但要達到上面的要求,我們還需要做一些額外的工作。

     

    可以使用兩種方式:

     

    ? 在 bus-core-api 項目的 pom 文件中添加一個 post-build 目標操作來啟動 app-web-ui 和 app-desktop-ui 項目的構建。

     

    ? 使用持續集成(CI) 服務器,比如 Hudson,來自行管理構建自動化。

     

     

    使用Maven

     

    修改 bus-core-api 項目的 pom.xml 文件。

     

    <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>

     

    打開命令控制臺,切換到 C:\ > MVN > bus-core-api 目錄下,然后執行以下命令。

     

    C:\MVN\bus-core-api>mvn clean package -U

     

    執行完命令后,Maven 將開始構建項目 bus-core-api。

     

    [INFO] Scanning for projects...
    [INFO] ------------------------------------------------------------------
    [INFO] Building bus-core-api
    [INFO]    task-segment: [clean, package]
    [INFO] ------------------------------------------------------------------
    ...
    [INFO] [jar:jar {execution: default-jar}]
    [INFO] Building jar: C:\MVN\bus-core-ui\target\
    bus-core-ui-1.0-SNAPSHOT.jar
    [INFO] ------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ------------------------------------------------------------------

     

    bus-core-api 構建成功后,Maven 將開始構建 app-web-ui 項目。

     

    [INFO] ------------------------------------------------------------------
    [INFO] Building app-web-ui 
    [INFO]    task-segment: [package]
    [INFO] ------------------------------------------------------------------
    ...
    [INFO] [jar:jar {execution: default-jar}]
    [INFO] Building jar: C:\MVN\app-web-ui\target\
    app-web-ui-1.0-SNAPSHOT.jar
    [INFO] ------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ------------------------------------------------------------------

     

    app-web-ui 構建成功后,Maven 將開始構建 app-desktop-ui 項目。

     

    [INFO] ------------------------------------------------------------------
    [INFO] Building app-desktop-ui 
    [INFO]    task-segment: [package]
    [INFO] ------------------------------------------------------------------
    ...
    [INFO] [jar:jar {execution: default-jar}]
    [INFO] Building jar: C:\MVN\app-desktop-ui\target\
    app-desktop-ui-1.0-SNAPSHOT.jar
    [INFO] -------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] -------------------------------------------------------------------

     

     

    使用持續集成服務器(CI)

     

    如果使用 CI 服務器更,我們每次的一個新項目,比如說實例中的 app-mobile-ui,添加為依賴 bus-core-api 項目時,開發者就不需要更新 bus-core-api 項目的 pom。Hudson 將會借助 Maven 的依賴管理功能實現工程的自動化創建。

     

     

    Hudson 把每個項目構建當成一次任務。在一個項目的代碼提交到 SVN (或者任何映射到 Hudson 的代碼管理工具)后,Hudson 將開始項目的構建任務,并且一旦此構建任務完成,Hudson 將自動啟動其他依賴的構建任務(其他依賴項目的構建)。

     

    在上面的例子中,當 bus-core-ui 源代碼在 SVN 更新后,Hudson 開始項目構建。一旦構建成功,Hudson 自動地查找依賴的項目,然后開始構建 app-web-ui 和 app-desktop-ui 項目。

     

    全部教程
  • <nav id="wkkge"><strong id="wkkge"></strong></nav>
  • <menu id="wkkge"></menu>
  • 面对面棋牌游戏