<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 3  文章 - 8  trackbacks - 0
    <2008年7月>
    293012345
    6789101112
    13141516171819
    20212223242526
    272829303112
    3456789

    2006年

    常用鏈接

    留言簿(1)

    隨筆檔案

    文章分類

    文章檔案

    相冊

    最新隨筆

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    開始一個新的項目并編譯和測試

          這里將要創建第一個Maven項目。我們將要用到的是Maven的原型機制(archetype mechanism)原型被定義為一個在所有其他性質相同的事物的原始式樣或模型(archetype is defined as an original pattern or model from which all other things of the same kind are made)在Maven中,一個原型是一個已經被使用者按需剪裁組合的Maven項目模板,下面我們就來看一下Maven的原型機制是如何工作的。

     ps:如果想了解什么是Archetypes請訪問:
     
    http://maven.apache.org/guides/introduction/introduction-to-archetypes.html

    下面來建立一個最簡單的項目、執行下面的語句:

    mvn archetype:create -DgroupId=com.maventest.pro -DartifactId=my

    執行上面的語句之前請保證你已經聯入Internet
    C:\>md MavenTest
    C:\>cd MavenTest
    C:\MavenTest>mvn archetype:create -DgroupId=com.maventest.pro -DartifactId=my
    [INFO] Scanning for projects...
    [INFO] Searching repository for plugin with prefix: 'archetype'.
    [INFO] org.codehaus.mojo: checking for updates from central
    [INFO] artifact org.apache.maven.plugins:maven-archetype-plugin: checking for up
    dates from central
    Downloading:
    http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-archet
    ype-plugin/1.0-alpha-3/maven-archetype-plugin-1.0-alpha-3.pom
    1K downloaded
    Downloading:
    http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-plugin
    -parent/2.0-beta-1/maven-plugin-parent-2.0-beta-1.pom
    6K downloaded
    Downloading:
    http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-archet
    ype-plugin/1.0-alpha-3/maven-archetype-plugin-1.0-alpha-3.jar
    6K downloaded
    [INFO] -------------------------------------------------------------------------
    ---
    [INFO] Building Maven Default Project
    [INFO]    task-segment: [archetype:create] (aggregator-style)
    [INFO] -------------------------------------------------------------------------
    ---
    Downloading:
    http://repo1.maven.org/maven2/org/apache/maven/maven-archetype-core
    /1.0-alpha-3/maven-archetype-core-1.0-alpha-3.pom
    1K downloaded
    Downloading:
    http://repo1.maven.org/maven2/org/apache/maven/maven-archetype/1.0-
    alpha-3/maven-archetype-1.0-alpha-3.pom
    638b downloaded
    Downloading:
    http://repo1.maven.org/maven2/org/apache/maven/maven/2.0-beta-1/mav
    en-2.0-beta-1.pom
    6K downloaded
    Downloading:
    http://repo1.maven.org/maven2/plexus/plexus-utils/1.0.3/plexus-util
    s-1.0.3.pom
    970b downloaded
    Downloading:
    http://repo1.maven.org/maven2/plexus/plexus-root/1.0.3/plexus-root-
    1.0.3.pom
    5K downloaded
    Downloading:
    http://repo1.maven.org/maven2/plexus/plexus-container-default/1.0-a
    lpha-6/plexus-container-default-1.0-alpha-6.pom
    916b downloaded
    Downloading:
    http://repo1.maven.org/maven2/plexus/plexus-containers/1.0.2/plexus
    -containers-1.0.2.pom
    471b downloaded
    Downloading:
    http://repo1.maven.org/maven2/classworlds/classworlds/1.1-alpha-2/c
    lassworlds-1.1-alpha-2.pom
    3K downloaded
    Downloading:
    http://repo1.maven.org/maven2/junit/junit/3.8.1/junit-3.8.1.pom
    145b downloaded
    Downloading:
    http://repo1.maven.org/maven2/plexus/plexus-utils/1.0.2/plexus-util
    s-1.0.2.pom
    740b downloaded
    Downloading:
    http://repo1.maven.org/maven2/org/apache/maven/maven-model/2.0-beta
    -1/maven-model-2.0-beta-1.pom
    1K downloaded
    Downloading:
    http://repo1.maven.org/maven2/plexus/plexus-velocity/1.0/plexus-vel
    ocity-1.0.pom
    943b downloaded
    Downloading:
    http://repo1.maven.org/maven2/plexus/plexus-components/1.0/plexus-c
    omponents-1.0.pom
    1K downloaded
    Downloading:
    http://repo1.maven.org/maven2/plexus/plexus-root/1.0/plexus-root-1.
    0.pom
    4K downloaded
    Downloading:
    http://repo1.maven.org/maven2/commons-logging/commons-logging/1.0.2
    /commons-logging-1.0.2.pom
    810b downloaded
    Downloading:
    http://repo1.maven.org/maven2/commons-collections/commons-collectio
    ns/2.0/commons-collections-2.0.pom
    171b downloaded
    Downloading:
    http://repo1.maven.org/maven2/velocity/velocity/1.4/velocity-1.4.po
    m
    2K downloaded
    Downloading:
    http://repo1.maven.org/maven2/velocity/velocity-dep/1.4/velocity-de
    p-1.4.pom
    1K downloaded
    Downloading:
    http://repo1.maven.org/maven2/log4j/log4j/1.2.8/log4j-1.2.8.pom
    145b downloaded
    Downloading:
    http://repo1.maven.org/maven2/plexus/plexus-container-default/1.0-a
    lpha-2/plexus-container-default-1.0-alpha-2.pom
    170b downloaded
    Downloading:
    http://repo1.maven.org/maven2/org/apache/maven/maven-artifact/2.0-b
    eta-1/maven-artifact-2.0-beta-1.pom
    711b downloaded
    Downloading:
    http://repo1.maven.org/maven2/org/apache/maven/maven-plugin-api/2.0
    -beta-1/maven-plugin-api-2.0-beta-1.pom
    615b downloaded
    Downloading:
    http://repo1.maven.org/maven2/commons-logging/commons-logging/1.0.2
    /commons-logging-1.0.2.jar
    25K downloaded
    Downloading:
    http://repo1.maven.org/maven2/org/apache/maven/maven-archetype-core
    /1.0-alpha-3/maven-archetype-core-1.0-alpha-3.jar
    14K downloaded
    Downloading:
    http://repo1.maven.org/maven2/plexus/plexus-velocity/1.0/plexus-velocity-1.0.jar
    4K downloaded
    Downloading:
    http://repo1.maven.org/maven2/velocity/velocity-dep/1.4/velocity-dep-1.4.jar
    505K downloaded
    Downloading:
    http://repo1.maven.org/maven2/velocity/velocity/1.4/velocity-1.4.jar
    352K downloaded
    Downloading:
    http://repo1.maven.org/maven2/commons-collections/commons-collectio
    ns/2.0/commons-collections-2.0.jar
    88K downloaded
    Downloading:
    http://repo1.maven.org/maven2/log4j/log4j/1.2.8/log4j-1.2.8.jar
    344K downloaded
    [INFO] Setting property: classpath.resource.loader.class => 'org.codehaus.plexus
    .velocity.ContextClassLoaderResourceLoader'.
    [INFO] Setting property: resource.loader => 'classpath'.
    [INFO] **************************************************************
    [INFO] Starting Jakarta Velocity v1.4
    [INFO] RuntimeInstance initializing.
    [INFO] Default Properties File: org\apache\velocity\runtime\defaults\velocity.pr
    operties
    [INFO] Default ResourceManager initializing. (class org.apache.velocity.runtime.
    resource.ResourceManagerImpl)
    [INFO] Resource Loader Instantiated: org.codehaus.plexus.velocity.ContextClassLo
    aderResourceLoader
    [INFO] ClasspathResourceLoader : initialization starting.
    [INFO] ClasspathResourceLoader : initialization complete.
    [INFO] ResourceCache : initialized. (class org.apache.velocity.runtime.resource.
    ResourceCacheImpl)
    [INFO] Default ResourceManager initialization complete.
    [INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Literal
    [INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Macro
    [INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Parse
    [INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Include
    [INFO] Loaded System Directive: org.apache.velocity.runtime.directive.Foreach
    [INFO] Created: 20 parsers.
    [INFO] Velocimacro : initialization starting.
    [INFO] Velocimacro : adding VMs from VM library template : VM_global_library.vm
    [ERROR] ResourceManager : unable to find resource 'VM_global_library.vm' in any
    resource loader.
    [INFO] Velocimacro : error using  VM library template VM_global_library.vm : org
    .apache.velocity.exception.ResourceNotFoundException: Unable to find resource 'V
    M_global_library.vm'
    [INFO] Velocimacro :  VM library template macro registration complete.
    [INFO] Velocimacro : allowInline = true : VMs can be defined inline in templates

    [INFO] Velocimacro : allowInlineToOverride = false : VMs defined inline may NOT
    replace previous VM definitions
    [INFO] Velocimacro : allowInlineLocal = false : VMs defined inline will be  glob
    al in scope if allowed.
    [INFO] Velocimacro : messages on  : VM system will output logging messages
    [INFO] Velocimacro : autoload off  : VM system will not automatically reload glo
    bal library macros
    [INFO] Velocimacro : initialization complete.
    [INFO] Velocity successfully started.
    [INFO] [archetype:create]
    [INFO] Defaulting package to group ID: com.maventest.pro
    [INFO] artifact org.apache.maven.archetypes:maven-archetype-quickstart: checking
     for updates from central
    Downloading:
    http://repo1.maven.org/maven2/org/apache/maven/archetypes/maven-arc
    hetype-quickstart/1.0-alpha-3/maven-archetype-quickstart-1.0-alpha-3.jar
    5K downloaded
    [INFO] ----------------------------------------------------------------------------
    [INFO] Using following parameters for creating Archetype: maven-archetype-quicks
    tart:RELEASE
    [INFO] ----------------------------------------------------------------------------
    [INFO] Parameter: groupId, Value: com.maventest.pro
    [INFO] Parameter: outputDirectory, Value: C:\MavenTest\my
    [INFO] Parameter: packageName, Value: com.maventest.pro
    [INFO] Parameter: package, Value: com.maventest.pro
    [INFO] Parameter: version, Value: 1.0-SNAPSHOT
    [INFO] Parameter: artifactId, Value: my
    [INFO] ResourceManager : found archetype-resources/pom.xml with loader org.codeh
    aus.plexus.velocity.ContextClassLoaderResourceLoader
    [INFO] ********************* End of debug info from resources from generated POM
     ***********************
    [INFO] ResourceManager : found archetype-resources/src/main/java/App.java with l
    oader org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader
    [INFO] ResourceManager : found archetype-resources/src/test/java/AppTest.java wi
    th loader org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader
    [INFO] Archetype created in dir: C:\MavenTest\my
    [INFO] ----------------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ----------------------------------------------------------------------------
    [INFO] Total time: 4 minutes 39 seconds
    [INFO] Finished at: Fri Jan 06 07:29:27 CST 2006
    [INFO] Final Memory: 4M/7M
    [INFO] ----------------------------------------------------------------------------
    C:\MavenTest>

        一旦你執行后、會注意到發生了幾件事情
    1、在MavenTest目錄下出現了一個名為my的新項目工程。而且里面包含一個名字為pom.xml
    的文件。pom.xml和src是同級目錄。
    my
    |-- pom.xml
    `-- src
        |-- main
        |   `-- java
        |       `-- com
        |           `-- maventest
        |               `-- pro
        |                   `-- App.java
        `-- test
            `-- java
                `-- com
                    `-- maventest
                        `-- pro
                            `-- AppTest.java

    這個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/maven-v4_0_0.xsd
    ">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.maventest.pro</groupId>
      <artifactId>my</artifactId>
      <packaging>jar</packaging>
      <version>1.0-SNAPSHOT</version>
      <name>Maven Quick Start Archetype</name>
      <url>http://maven.apache.org</url>
      <dependencies>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>3.8.1</version>
          <scope>test</scope>
        </dependency>
      </dependencies>
    </project>

    這里我們看到兩個目錄分別為應用程序源和測試源,這是個標準的Maven項目布局。而這個結構布局通常都是手工創建的。

    [faq]
    Q:什么是POM?
    A:Project Object Model 項目對象模型、Maven的基本單元。詳細了解訪問:
             http://maven.apache.org/guides/introduction/introduction-to-the-pom.html

    2、就是Maven在首次運行的時候要連接Internet獲取相關的文件。

    pom.xml文件中的標簽元素說明

    ·project                這是所有pom.xml的頂層
    ·modelVersion   這個元素指出POM現在使用的對象模型版本,除非開發者強制性的為了
                                     確保穩定性而進行的必要改變、一般都是不發生變化的。
    ·groupId               這個就是指出被被創建項目的唯一標識、通常使用域名。
    ·artifactId            這個元素指出了生成項目時的唯一主要的的名字、通常這個名字被作為
                                      Jar的名字。
    ·packaging          打包類型 (e.g. JAR, WAR, EAR, etc.). 這個不僅僅意味著打包的產品類型
                                      也指出了一個建造過程中的詳細生命周期。
    ·version                這個元素指出在項目被生成的時候的版本,通常你所看到的
                                      SNAPSHOT指的是開發進行的狀態
    ·name                   這個元素指出項目相識的名字、通常被用在Maven生成的文檔中
    ·url                        這個元素指出在哪里可以找到這個項目的站點、通常也被用到Maven的
                                      文檔中。
    ·description          這個元素為你的項目提供一個基本的描述,通常被用在Maven生成的文
                                      檔中。

    下面我們就項目進行測試和編譯
    編譯
     執行: 
    mvn compile

    C:\MavenTest\my>mvn compile
    [INFO] Scanning for projects...
    [INFO] ----------------------------------------------------------------------------
    [INFO] Building Maven Quick Start Archetype
    [INFO]    task-segment: [compile]
    [INFO] ----------------------------------------------------------------------------
    [INFO] [resources:resources]
    [INFO] Using default encoding to copy filtered resources.
    [INFO] [compiler:compile]
    [INFO] Nothing to compile - all classes are up to date
    [INFO] ----------------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ----------------------------------------------------------------------------
    [INFO] Total time: 1 second
    [INFO] Finished at: Fri Jan 06 09:08:13 CST 2006
    [INFO] Final Memory: 2M/5M
    [INFO] ----------------------------------------------------------------------------
    [INFO] Total time: 4 minutes 39 seconds 
    [INFO] Finished at: Fri Jan 06 07:29:27 CST 2006
    [INFO] Final Memory: 4M/7M  
    [INFO] ---------------------------------------------------------------------------

    測試
     執行:
    mvn test

    C:\MavenTest\my>mvn test
    [INFO] Scanning for projects...
    [INFO] ----------------------------------------------------------------------------
    [INFO] Building Maven Quick Start Archetype
    [INFO]    task-segment: [test]
    [INFO] ----------------------------------------------------------------------------
    [INFO] [resources:resources]
    [INFO] Using default encoding to copy filtered resources.
    [INFO] [compiler:compile]
    [INFO] Nothing to compile - all classes are up to date
    [INFO] [resources:testResources]
    [INFO] Using default encoding to copy filtered resources.
    [INFO] [compiler:testCompile]
    [INFO] Nothing to compile - all classes are up to date
    [INFO] [surefire:test]
    [INFO] Setting reports dir: C:\MavenTest\my\target/surefire-reports

    -------------------------------------------------------
     T E S T S
    -------------------------------------------------------
    [surefire] Running com.maventest.pro.AppTest
    [surefire] Tests run: 1, Failures: 0, Errors: 0, Time elapsed: 0.015 sec

    Results :
    [surefire] Tests run: 1, Failures: 0, Errors: 0

    [INFO] ----------------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] ----------------------------------------------------------------------------
    [INFO] Total time: 2 seconds
    [INFO] Finished at: Fri Jan 06 09:07:45 CST 2006
    [INFO] Final Memory: 3M/6M
    [INFO] ----------------------------------------------------------------------------

    這個時候觀察一下my 下的目錄結構。會發現生成了target 目錄,這個就是Maven對程序進行編譯和測試而生成的目標文件夾。

    請注意這里compile和test是分別對兩個類進行編譯的。compile是對App.java進行編譯,而test是對AppTest.java進行編譯和測試。
    如果單單是想編譯AppTest.java的話可以使用下面的命令:
                       mvn test-compile



    后面我講下如何在eclipse導入Maven構建的項目,待續…………

    前篇:Maven 安裝

    posted on 2006-01-06 09:39 水狐 閱讀(20946) 評論(4)  編輯  收藏 所屬分類: Maven

    FeedBack:
    # re: Maven 試用手記----開始一個新的項目并編譯和測試 2006-01-06 10:33 胡子魚
    暈哦,日志都粘上來了~~
    言簡意賅~~  回復  更多評論
      
    # re: Maven 試用手記----開始一個新的項目并編譯和測試 2006-01-06 14:48 Jet Geng
    配置文件可以說一下。不再配置文件中設一下網絡代理的話會聯網絡有時會有問題。找不到相應的package且無法download。執行會失敗。:(  回復  更多評論
      
    # re: Maven 試用手記----開始一個新的項目并編譯和測試 2006-01-10 17:49 foxgem
    如果出現找不到相應的package,需要在pom.xml中添加一個關于這個package的dependency;
    如果出現無法download,就要確認你寫的dependency是否正確
    例如:
    <dependency>
    <groupId>springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>1.1.4</version>
    </dependency>

    如果local的repository中沒有相關的jar包,就會到如下的url中找:
    [REPO_ROOT]/<groupId>/<type>s/<artifactId>-<currentVersion>.<type>
    repo_root指的是http://www.ibiblio.org/maven/
      回復  更多評論
      
    # re: Maven 試用手記----開始一個新的項目并編譯和測試 2008-07-17 10:50 beyondcf
    請教一個問題,用MAVEN建立了一個工程,但是在編譯的時候提示編譯失敗日志如下:
    D:\my>mvn compile
    [INFO] Scanning for projects...
    [INFO] Building my
    [INFO] task-segment: [compile] INFO] [resources:resources]
    [INFO] Using default encoding to copy filtered resources.
    [INFO] [compiler:compile] [ERROR] BUILD ERROR
    [INFO] No such compiler 'javac'.
    [INFO] For more information, run Maven with the -e switch [INFO] Total time: 1 second
    [INFO] Finished at: Thu Jul 17 10:39:20 CST 2008
    [INFO] Final Memory: 2M/6M

    但是我的jdk可以用的,也能夠編譯java 文件 ,在edlipse 中也能對eclipse的工程文件進行編譯和運行.執行javac -version 也能夠看到 Java的版本

    請教樓主和各位MAVEN高手,誰能告訴我錯誤出在哪里了啊,謝謝了。  回復  更多評論
      

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: www视频免费看| 免费国产在线视频| 午夜毛片不卡免费观看视频| 337p日本欧洲亚洲大胆艺术| 久草视频在线免费看| 亚洲福利在线观看| 91av免费观看| 中文文字幕文字幕亚洲色| 国产在线观看麻豆91精品免费 | 亚洲日韩一页精品发布| 亚洲 国产 图片| 亚洲日本国产乱码va在线观看| 无码亚洲成a人在线观看| 日韩激情无码免费毛片| 美女无遮挡免费视频网站| 亚洲 国产 图片| 国产精品网站在线观看免费传媒 | 精品福利一区二区三区免费视频| 亚洲免费二区三区| 日韩高清在线免费看| 一级A毛片免费观看久久精品| 亚洲五月综合缴情在线观看| 午夜免费福利视频| 亚洲成人免费网站| 日韩免费一级毛片| 男人天堂免费视频| 亚洲图片激情小说| 日产乱码一卡二卡三免费| g0g0人体全免费高清大胆视频| 久久精品国产精品亚洲精品| 亚洲成年人免费网站| 亚洲AV永久无码天堂影院| 国产一级一片免费播放| a毛片免费全部播放完整成| 亚洲春黄在线观看| 免费精品国产自产拍观看| 嫩草影院在线播放www免费观看| 日本亚洲免费无线码| 亚洲午夜未满十八勿入网站2| 四虎成年永久免费网站| 特黄aa级毛片免费视频播放|