zoukankan      html  css  js  c++  java
  • 【转】Maven项目模板

    http://www.yiibai.com/maven/maven_project_templates.html

    maven 使用 Archetype 概念为用户提供不同类型的项目模板,它是一个非常大的列表(614个数字)。 maven 使用下面的命令来帮助用户快速开始构建一个新的 Java 项目。

    mvn archetype:generate
    

    什么是Archetype

    Archetype 是一个 Maven 插件,其任务是按照其模板来创建一个项目结构。在这里我们将使用 quickstart 原型插件来创建一个简单的 Java应用程序。

    使用项目模板

    让我们打开命令控制台,进入到 C:>MVN 目录,然后执行以下命令 mvn 命令,如下代码所示:

    C:MVN>mvn archetype:generate 
    

    Maven 开始处理,并按要求选择所需的原型,执行结果如下图中所示:

    INFO] Scanning for projects...
    [INFO] Searching repository for plugin with prefix: 'archetype'.
    [INFO] -------------------------------------------------------------------
    [INFO] Building Maven Default Project
    [INFO]    task-segment: [archetype:generate] (aggregator-style)
    [INFO] -------------------------------------------------------------------
    [INFO] Preparing archetype:generate
    ...
    600: remote -> org.trailsframework:trails-archetype (-)
    601: remote -> org.trailsframework:trails-secure-archetype (-)
    602: remote -> org.tynamo:tynamo-archetype (-)
    603: remote -> org.wicketstuff.scala:wicket-scala-archetype (-)
    604: remote -> org.wicketstuff.scala:wicketstuff-scala-archetype 
    Basic setup for a project that combines Scala and Wicket,
    depending on the Wicket-Scala project. 
    Includes an example Specs test.)
    605: remote -> org.wikbook:wikbook.archetype (-)
    606: remote -> org.xaloon.archetype:xaloon-archetype-wicket-jpa-glassfish (-)
    607: remote -> org.xaloon.archetype:xaloon-archetype-wicket-jpa-spring (-)
    608: remote -> org.xwiki.commons:xwiki-commons-component-archetype 
    (Make it easy to create a maven project for creating XWiki Components.)
    609: remote -> org.xwiki.rendering:xwiki-rendering-archetype-macro 
    (Make it easy to create a maven project for creating XWiki Rendering Macros.)
    610: remote -> org.zkoss:zk-archetype-component (The ZK Component archetype)
    611: remote -> org.zkoss:zk-archetype-webapp (The ZK wepapp archetype)
    612: remote -> ru.circumflex:circumflex-archetype (-)
    613: remote -> se.vgregion.javg.maven.archetypes:javg-minimal-archetype (-)
    614: remote -> sk.seges.sesam:sesam-annotation-archetype (-)
    Choose a number or apply filter 
    (format: [groupId:]artifactId, case sensitive contains): 203:
    

    按 Enter 键选择默认选项(203:maven-archetype-quickstart)

    Maven会要求原型的特定版本

    Choose org.apache.maven.archetypes:maven-archetype-quickstart version:
    1: 1.0-alpha-1
    2: 1.0-alpha-2
    3: 1.0-alpha-3
    4: 1.0-alpha-4
    5: 1.0
    6: 1.1
    Choose a number: 6:
    

    按 Enter 键选择默认选项(6:maven-archetype-quickstart:1.1)

    Maven会要求填写项目细节信息。如果要使用默认值可直接按回车。也可以通过输入自己的值覆盖它们。

    Define value for property 'groupId': : com.companyname.insurance
    Define value for property 'artifactId': : health
    Define value for property 'version': 1.0-SNAPSHOT:
    Define value for property 'package': com.companyname.insurance:
    

    Maven会要求确认项目的细节信息,可按回车键或按 Y 来确认。

    Confirm properties configuration:
    groupId: com.companyname.insurance
    artifactId: health
    version: 1.0-SNAPSHOT
    package: com.companyname.insurance
    Y:
    

    现在,Maven将开始创建项目结构,并会显示如下内容:

    [INFO] -----------------------------------------------------------------------
    [INFO] Using following parameters for creating project 
    from Old (1.x) Archetype: maven-archetype-quickstart:1.1
    [INFO] -----------------------------------------------------------------------
    [INFO] Parameter: groupId, Value: com.companyname.insurance
    [INFO] Parameter: packageName, Value: com.companyname.insurance
    [INFO] Parameter: package, Value: com.companyname.insurance
    [INFO] Parameter: artifactId, Value: health
    [INFO] Parameter: basedir, Value: C:MVN
    [INFO] Parameter: version, Value: 1.0-SNAPSHOT
    [INFO] project created from Old (1.x) Archetype in dir: C:MVNhealth
    [INFO] -----------------------------------------------------------------------
    [INFO] BUILD SUCCESSFUL
    [INFO] -----------------------------------------------------------------------
    [INFO] Total time: 4 minutes 12 seconds
    [INFO] Finished at: Fri Jul 13 11:10:12 IST 2012
    [INFO] Final Memory: 20M/90M
    [INFO] -----------------------------------------------------------------------
    

    创建项目

    现在进入到 C:mvn 目录。会看到有一个 java 应用程序项目已创建了,它是在创建项目时给出 artifactId 命名:health 。 Maven 将创建一个标准的目录结构布局,如下图所示:

    project structure

    创建pom.xml

    Maven 项目中的生成如下所列出 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>com.companyname.insurance</groupId>
       <artifactId>health</artifactId>
       <version>1.0-SNAPSHOT</version>
       <packaging>jar</packaging>
       <name>health</name>
       <url>http://maven.apache.org</url>
       <properties>
          <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
       </properties>
       <dependencies>
          <dependency>
          <groupId>junit</groupId>
             <artifactId>junit</artifactId>
             <version>3.8.1</version>
             <scope>test</scope>
          </dependency>
       </dependencies>
    </project>

    创建App.java

    Maven 示例生成 Java 源文件,App.java下面列出项目:

    位置:C:>MVNhealthsrcmainjavacomcompanynameinsurance> App.java

    package com.companyname.insurance;
    
    /**
     * Hello world!
     *
     */
    public class App 
    {
        public static void main( String[] args )
        {
            System.out.println( "Hello World!" );
        }
    }

    创建 AppTest.java

    Maven 实例生成 Java 源测试文件,项目中的 AppTest.java 测试文件如下面列出:

    位置: C: > MVN > health > src > test > java > com > companyname > insurance > AppTest.java

    package com.companyname.insurance;
    
    import junit.framework.Test;
    import junit.framework.TestCase;
    import junit.framework.TestSuite;
    
    /**
     * Unit test for simple App.
     */
    public class AppTest 
        extends TestCase
    {
        /**
         * Create the test case
         *
         * @param testName name of the test case
         */
        public AppTest( String testName )
        {
            super( testName );
        }
    
        /**
         * @return the suite of tests being tested
         */
        public static Test suite()
        {
            return new TestSuite( AppTest.class );
        }
    
        /**
         * Rigourous Test :-)
         */
        public void testApp()
        {
            assertTrue( true );
        }
    }

    就是这样。现在就可以看到 Maven 的功能了。可以使用 maven 单一命令来创建任何类型的项目并开始开发。

  • 相关阅读:
    UVA12125 March of the Penguins (最大流+拆点)
    UVA 1317 Concert Hall Scheduling(最小费用最大流)
    UVA10249 The Grand Dinner(最大流)
    UVA1349 Optimal Bus Route Design(KM最佳完美匹配)
    UVA1212 Duopoly(最大流最小割)
    UVA1395 Slim Span(kruskal)
    UVA1045 The Great Wall Game(二分图最佳匹配)
    UVA12168 Cat vs. Dog( 二分图最大独立集)
    hdu3488Tour(KM最佳完美匹配)
    UVA1345 Jamie's Contact Groups(最大流+二分)
  • 原文地址:https://www.cnblogs.com/exmyth/p/7517265.html
Copyright © 2011-2022 走看看