zoukankan      html  css  js  c++  java
  • 使用maven创建java项目

    1. 从 Maven 模板创建一个项目

    在终端(* UNIX或Mac)或命令提示符(Windows)中,浏览到要创建 Java 项目的文件夹。键入以下命令:

    mvn archetype:generate -DgroupId={project-packaging} -DartifactId={project-name}-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

    这告诉 Maven 来从 maven-archetype-quickstart 模板创建 Java 项目。如果忽视 archetypeArtifactId 选项,一个巨大的 Maven 模板列表将列出。

    例如,这里的工作目录是:C:worksp,执行命令过程时间可能比较久,看个人的网络状况。

    C:worksp>mvn archetype:generate -DgroupId=com.yiibai -DartifactId=NumberGenerat
    or -DarchetypeArtifactId=maven -archetype-quickstart -DinteractiveMode=false
    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building Maven Stub Project (No POM) 1
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] >>> maven-archetype-plugin:2.4:generate (default-cli) > generate-sources
    @ standalone-pom >>>
    [INFO]
    [INFO] <<< maven-archetype-plugin:2.4:generate (default-cli) < generate-sources
    @ standalone-pom <<<
    [INFO]
    [INFO] --- maven-archetype-plugin:2.4:generate (default-cli) @ standalone-pom --
    -
    [INFO] Generating project in Batch mode
    [INFO] -------------------------------------------------------------------------
    ---
    [INFO] Using following parameters for creating project from Old (1.x) Archetype:
     maven-archetype-quickstart:1.0
    [INFO] -------------------------------------------------------------------------
    ---
    [INFO] Parameter: basedir, Value: C:worksp
    [INFO] Parameter: package, Value: com.yiibai
    [INFO] Parameter: groupId, Value: com.yiibai
    [INFO] Parameter: artifactId, Value: NumberGenerator
    [INFO] Parameter: packageName, Value: com.yiibai
    [INFO] Parameter: version, Value: 1.0-SNAPSHOT
    [INFO] project created from Old (1.x) Archetype in dir: C:workspNumberGenerato
    r
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 23.166 s
    [INFO] Finished at: 2015-10-27T11:03:48+08:00
    [INFO] Final Memory: 17M/114M
    [INFO] ------------------------------------------------------------------------

    在上述情况下,一个新的Java项目命名 “NumberGenerator”, 而整个项目的目录结构会自动创建。

    注意
    有少数用户说 mvn archetype:generate 命令未能生成项目结构。 如果您有任何类似的问题,不用担心,只需跳过此步骤,手动创建文件夹,请参阅步骤2的项目结构。

    2.Maven目录布局

    使用 mvn archetype:generate + maven-archetype-quickstart 模板, 以下项目的目录结构被创建。

    NumberGenerator
       |-src
       |---main
       |-----java
       |-------com
       |---------yiibai   
       |-----------App.java
       |---test|-----java
       |-------com
       |---------yiibai
       |-----------AppTest.java
       |-pom.xml

    很简单的,所有的源代码放在文件夹 /src/main/java/, 所有的单元测试代码放入 /src/test/java/.

    注意,请阅读 Maven标准目录布局

    附加的一个标准的 pom.xml 被生成。这个POM文件类似于 Ant build.xml 文件,它描述了整个项目的信息,一切从目录结构,项目的插件,项目依赖,如何构建这个项目等

    20.

    默认的 pom.xml 太简单了,很多时候,你需要添加编译器插件来告诉 Maven 使用哪个 JDK 版本是用来编译项目。(默认JDK1.4,这的确太旧了点)

          <plugin>
    		<groupId>org.apache.maven.plugins</groupId>
    		<artifactId>maven-compiler-plugin</artifactId>
    		<version>2.3.2</version>
    		<configuration>
    			<source>1.6</source>
    			<target>1.6</target>
    		</configuration>
    	</plugin>



    6. Maven 打包

    现在,我们将使用Maven这个项目,并输出编译成一个 “jar” 的文件。 请参考 pom.xml 文件,包元素定义应该包应该输出什么。

    pom.xml
    <project ...>
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>com.yiibai</groupId>
    	<artifactId>NumberGenerator</artifactId>	
    	<packaging>jar</packaging>	
    	<version>1.0-SNAPSHOT</version>

    在终端输入 mvn package :

    C:workspNumberGenerator> mvn package
    ... ...
    ha-2/classworlds-1.1-alpha-2.jar (37 KB at 20.2 KB/sec)
    Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-io/2 .0.2/plexus-io-2.0.2.jar (57 KB at 28.1 KB/sec)
    Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-inte rpolation/1.15/plexus-interpolation-1.15.jar (60 KB at 21.4 KB/sec)
    Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-arch iver/2.1/plexus-archiver-2.1.jar (181 KB at 61.5 KB/sec)
    Downloaded: https://repo.maven.apache.org/maven2/org/codehaus/plexus/plexus-util s/3.0/plexus-utils-3.0.jar (221 KB at 60.3 KB/sec)
    [INFO] Building jar: C:workspNumberGenerator	argetNumberGenerator-1.0-SNAPSH
    OT.jar
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 01:00 min
    [INFO] Finished at: 2015-10-27T20:00:17+08:00
    [INFO] Final Memory: 10M/54M
    [INFO] ------------------------------------------------------------------------

    它编译,运行单元测试并打包项目成一个 jar 文件,并把它放在 project/target 文件夹。如果出错:ERROR: Unable to locate the Javac Compiler in:,  C:Program Files (x86)Javajre6..lib ools.jar,Please ensure you are using JDK 1.4 or above and,not a JRE (the com.sun.tools.javac.Main class is required)..

    1. 从Maven模板创建Web项目

    您可以通过使用Maven的maven-archetype-webapp模板来创建一个快速启动Java Web应用程序的项目。在终端(* UNIX或Mac)或命令提示符(Windows)中,导航至您想要创建项目的文件夹。

    键入以下命令:

    $ mvn archetype:generate -DgroupId=com.yiibai -DartifactId=CounterWebApp -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false

    具体示例 :

    C:worksp>mvn archetype:generate -DgroupId=com.yiibai  -DartifactId=CounterWebAp
    p -DarchetypeArtifactId=maven-archetype-webapp -DinteractiveMode=false
    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building Maven Stub Project (No POM) 1
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] >>> maven-archetype-plugin:2.4:generate (default-cli) > generate-sources
    @ standalone-pom >>>
    [INFO]
    [INFO] <<< maven-archetype-plugin:2.4:generate (default-cli) < generate-sources
    @ standalone-pom <<<
    [INFO]
    [INFO] --- maven-archetype-plugin:2.4:generate (default-cli) @ standalone-pom --
    -
    [INFO] Generating project in Batch mode
    Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/ma
    ven-archetype-webapp/1.0/maven-archetype-webapp-1.0.jar
    Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/mav
    en-archetype-webapp/1.0/maven-archetype-webapp-1.0.jar (4 KB at 0.1 KB/sec)
    Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/ma
    ven-archetype-webapp/1.0/maven-archetype-webapp-1.0.pom
    Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/archetypes/mav
    en-archetype-webapp/1.0/maven-archetype-webapp-1.0.pom (533 B at 0.1 KB/sec)
    [INFO] -------------------------------------------------------------------------
    ---
    [INFO] Using following parameters for creating project from Old (1.x) Archetype:
     maven-archetype-webapp:1.0
    [INFO] -------------------------------------------------------------------------
    ---
    [INFO] Parameter: basedir, Value: C:worksp
    [INFO] Parameter: package, Value: com.yiibai
    [INFO] Parameter: groupId, Value: com.yiibai
    [INFO] Parameter: artifactId, Value: CounterWebApp
    [INFO] Parameter: packageName, Value: com.yiibai
    [INFO] Parameter: version, Value: 1.0-SNAPSHOT
    [INFO] project created from Old (1.x) Archetype in dir: C:workspCounterWebApp
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 10:30 min
    [INFO] Finished at: 2015-10-28T20:31:03+08:00
    [INFO] Final Memory: 16M/174M
    [INFO] ------------------------------------------------------------------------

    新的Web项目命名为 “CounterWebApp”,以及一些标准的 web 目录结构也会自动创建。

    2. 项目目录布局

    查看生成的项目结构布局:

    .|____CounterWebApp
    ||____pom.xml
    ||____src
    |||____main
    ||||____resources
    ||||____webapp
    |||||____index.jsp
    |||||____WEB-INF
    ||||||____web.xml

    Maven 产生了一些文件夹,一个部署描述符 web.xml,pom.xml 和 index.jsp。

    注意,
    请查看官方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/maven-v4_0_0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>com.yiibai</groupId>
      <artifactId>CounterWebApp</artifactId>
      <packaging>war</packaging>
      <version>1.0-SNAPSHOT</version>
      <name>CounterWebApp Maven Webapp</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>
      <build>
        <finalName>CounterWebApp</finalName>
      </build>
    </project>

    web.xml – Servlet 2.3 已经比较旧, 建议升级到2.5

    <!DOCTYPE web-app PUBLIC
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name></web-app>

    index.jsp – 一个简单的 hello world html 页面文件

    <html>
    <body>
    <div><div class="ads-in-post hide_if_width_less_800">
    <script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
    <!-- 728x90 - After2ndH4 -->
    <ins class="adsbygoogle hide_if_width_less_800" 
         style="display:inline-block;728px;height:90px"
         data-ad-client="ca-pub-2836379775501347"
         data-ad-slot="3642936086"
    	 data-ad-region="mkyongregion"></ins>
    <script>
    (adsbygoogle = window.adsbygoogle || []).push({});
    </script>
    </div></div><h2>Hello World!</h2>
    </body>
    </html>


    3. Eclipse IDE 支持

    要导入这个项目到Eclipse中,需要生成一些 Eclipse 项目的配置文件:

    3.1、在终端,进入到 “CounterWebApp” 文件夹中,键入以下命令:

    C:worksp>cd CounterWebApp
    C:workspCounterWebApp>mvn eclipse:eclipse -Dwtpversion=2.0
    [INFO] Scanning for projects...
    Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven -war-plugin/2.2/maven-war-plugin-2.2.pom
    Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven- war-plugin/2.2/maven-war-plugin-2.2.pom (7 KB at 2.5 KB/sec)
    Downloading: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven -war-plugin/2.2/maven-war-plugin-2.2.jar
    Downloaded: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven- war-plugin/2.2/maven-war-plugin-2.2.jar (77 KB at 26.2 KB/sec)
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] Building CounterWebApp Maven Webapp 1.0-SNAPSHOT
    [INFO] ------------------------------------------------------------------------
    [INFO]
    [INFO] >>> maven-eclipse-plugin:2.10:eclipse (default-cli) > generate-resources
    @ CounterWebApp >>>
    [INFO]
    [INFO] <<< maven-eclipse-plugin:2.10:eclipse (default-cli) < generate-resources
    @ CounterWebApp <<<
    [INFO]
    [INFO] --- maven-eclipse-plugin:2.10:eclipse (default-cli) @ CounterWebApp ---
    [INFO] Adding support for WTP version 2.0.
    [INFO] Using Eclipse Workspace: null
    [INFO] Adding default classpath container: org.eclipse.jdt.launching.JRE_CONTAINER
    [INFO] Not writing settings - defaults suffice
    [INFO] Wrote Eclipse project for "CounterWebApp" to C:workspCounterWebApp.
    [INFO]
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 7.982 s
    [INFO] Finished at: 2015-10-28T20:24:57+08:00
    [INFO] Final Memory: 15M/146M
    [INFO] ------------------------------------------------------------------------
    注意,此选项 -Dwtpversion=2.0 告诉 Maven 将项目转换到 Eclipse 的 Web 项目(WAR),而不是默认的Java项目(JAR)。为方便起见,以后我们会告诉你如何配置 pom.xml 中的这个 WTP 选项。

    3.2 导入到 Eclipse IDE – File -> Import… -> General -> Existing Projects into workspace.

  • 相关阅读:
    CodeDeploy 应用程序规范文件
    Lambda 函数的最佳实践
    路由策略
    AWS CodeStar
    使用 Lambda@Edge 在边缘站点自定义内容
    Step Functions
    将应用程序部署到 AWS Elastic Beanstalk 环境
    DynamoDB 静态加密
    web数据安全——防篡改
    【Spring】spring全局异常处理即全局model数据写入
  • 原文地址:https://www.cnblogs.com/panxuejun/p/6527579.html
Copyright © 2011-2022 走看看