`
lantian_123
  • 浏览: 1368603 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Maven3入门篇

 
阅读更多

0、Maven是什么?

      Maven是一个构建工具?不,Maven更是一个项目管理工具,除了构建功能之外Maven还可以生成报告,生成Web站点,推动团队成员之间的交流。

 

 

一、下载、安装、配置都比较简单,这里省略300字···

 

二、创建一个新的项目

      第一个步骤完成执行命令:mvn -version  如果能正确返回maven的版本信息,那么恭喜进入第二步。

 

mvn archetype:generate

第一次执行程序会花一段时间下载archetype,每个archetype都有一个number、name、short description用来描述,我们选择一个默认的archetype,直接回车就ok.

 

 

接着:choose a number,同样直接回车默认的选择


接着定义

grouid:通常是根据公司或组织的网址来定义,如:com.lzjun

artifactid:项目的id,就是项目的名称,如:"mvnlearn“

version: 版本号,直接回车,默认是1.0-SNAPSHOT

packeage:项目的包名,如:com.lzjun

 

回车,输入Y,构建完成,生成的项目的目录结构如下所示

 

|-- pom.xml

|-- src

    |-- main

        |-- java

            |-- com

                |--lzjun

                     | -- App.java

   |-- test

         |-- java

            |-- com

                |--lzjun

                     | -- AppTest.java

 

三、编译、测试项目

 

在项目所在路径的命令行终端,执行:mvn compile 

 

Maven开始下载依赖包,然后编译,最后提示“BUILD SUCCESS"证明编译成功。在项目mvnlearn目录下面生成target目录,编译好的字节码class问件就在这个目录里面。

 

target的目录层次结构:

 

├───mvnlearn-1.0-SNAPSHOT.jar(此文件通常要执行 mvn package 命令才有)

├───classes

            |-- com

                 |--lzjun

                     | -- App.class

 

├───maven-archiver

              ──pom.properties

 

├───surefire

              ----临时文件

 

├───surefire-reports

           ──com.lzjun.AppTest.txt

           ── TEST-com.lzjun.AppTest.xml

 

│───test-classes

         ───com

                 ───lzjun

                       ───AppTest.class

 

执行:mvn test

将执行test包项目的测试用例,最后返回测试结果

 

 

四、理解Project Object Model

 

每个maven项目都包含一个pom.xml的文件,文件中包含了与项目相关的所有元信息。如:项目配置文件、缺陷追踪系统、项目组织信息、Licenses、项目的路径、依赖关系等等。

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>
	<!-- The Basics -->
	<groupId>...</groupId>
	<artifactId>...</artifactId>
	<version>...</version>
	<packaging>...</packaging>
	<dependencies>...</dependencies>
	<parent>...</parent>
	<dependencyManagement>...</dependencyManagement>
	<modules>...</modules>
	<properties>...</properties>
	
	<!-- Build Settings -->
	<build>...</build>
	<reporting>...</reporting>
	
	<!-- Project Meta Data -->
	<name>...</name>
	<description>...</description>
	<url>...</url>
	<inceptionYear>...</inceptionYear>
	<licenses>...</licenses>
	<organization>...</organization>
	<developers>...</developers>
	<contributors>...</contributors>
	
	<!-- Environment -->
	<issueManagement>...</issueManagement>
	<ciManagement>...</ciManagement>
	<mailingLists>...</mailingLists>
	<scm>...</scm>
	<prerequisites>...</prerequisites>
	<repositories>...</repositories>
	<pluginRepositories>...</pluginRepositories>
	<distributionManagement>...</distributionManagement>
	<profiles>...</profiles>
</project>

 

项目坐标:groupId,artifactId,version是POM中必须包含的最小基本域信息。

 

POM包括四个主要的部分

  1、基本属性:  (groupId、artifact、version)、依赖管理、层级结构、还包括模块和项目级别属性

  2、构建设置:包含项目构建的细节设置

  3、项目元数据:包含项目规范的细节,如:名字、组织机构、开发者、URL、启动时间等等

  4、环境信息:包括版本控制信息、问题追踪管理、持续集成、邮件列表、仓储等等、

 

五、Maven的生命周期

 

maven有三个相互独立的生命周期,分别是default、clean、site

 

Default lifecycle:负责处理项目的编译、测试、部署,有超过20个阶段,常用的有如下:

 

   validate:验证整个项目的信息是否可用或正确

   compile:编译源代码

   test:在测试套件里运行单元测试

   package:为编译的代码打包

   integration-test:在集成测试环境中处理package

   verify:验证package是否合法

   install:本地仓储中安装package

   deploy:在远程仓储中安装最终的package

 

以上阶段都是按先后顺序执行,如果直接执行deploy,maven会先从validate开始执行,直到deploy。

 

Clean lifecycle:处理项目的清空工作,包含以下阶段:

 

    pre-clean:清理之前的一些预处理。

    clean:清除通过之前构建生成的所有文件

    post-clean:清理之后的一些处理(类似异常代码块中的finally)

 

Site lifecycle:项目站点文档的生成工作

   pre-site:站点生成前的准备工作

   site:生成文档

   post-site:处理站点生成完之后的一些工作,及为部署做准备

   site-deploy:给指定的web服务器部署站点文档

 

maven源码插件:

 

 <plugin>  
                <artifactId>maven-source-plugin</artifactId>  
                <version>2.1</version>  
                <configuration>  
                    <attach>true</attach>  
                </configuration>  
                <executions>  
                    <execution>  
                        <phase>compile</phase>  
                        <goals>  
                            <goal>jar</goal>  
                        </goals>  
                    </execution>  
                </executions>  
 </plugin>  
 

 

 

 

关于错误:

Convert to maven project: An internal error occurred during: “Enabling Maven Dependency Management”. Unsupported IClasspathEntry kind=4

 

有个解决办法是先  mvn eclipse:clean 在eclipse中刷新项目后再convert maven project

 

maven 测试指定类:

 

mvn test -Dtest=className 

mvn -Dtest=className test

 

执行单个:mvn test -Dtest=UserTest

 

执行多个:mvn test -Dtest= UserTest ,User2Test,User3Test

 

运用通配符:mvn test -Dtest=User*Test

 

maven 测试指定方法:

 

 

mvn test -Dtest=className#method 或 mvn -Dtest=className#method test

 

 

mvn test -Dtest=UserTest#addtest

 

maven package without test:

 

mvn package -Dmaven.test.skip=true

 

mvn deploy -Dmaven.test.skip=true

可以把项目上传到maven私服

(setting.xml)配置

 

 <server>
      <id>internal</id>
      <username>xxx</username>
      <password>xxx</password>
    </server>

 

<mirror>
        <id>internal</id>
        <name>Cloud Archiva</name>
        <url>http://192.168.0.58:8181/archiva/repository/internal</url>
        <mirrorOf>*</mirrorOf>
    </mirror>

  Maven remote debug

配置环 境变量

linux:

 

export MAVEN_OPTS=-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y

 

 windows:

 

set MAVEN_OPTS=-Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=y

 

 执行们命令后就会监听端口8787。(此方法在笔者测试下虽然监听了该端口,但是并不在跳到本地eclipse中的断点里来),只好换一种方法

 

mvn -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8001 -Xnoagent -Djava.compiler=NONE" test TestClazz #TestClazz为测试类

 

如果是普通的Java项目

 

java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 Test #Test是入口类
或者
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 -jar Test.jar #jar包

 

如果是tomcat项目

 

windows:在startup.bat文件中加上

set JPDA_ADDRESS=8000 #监控端口,非web项目端口
call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS% #在原有的这行加上jpda

linux运行
catalina.sh jpda run # windows 要运行catalina.bat脚本

 

在eclipse中配置好远程调试的参数即可调试(右键project名称->Debug As->Debug Configures)进行配置

 

Cannot-read-lifecycle-mapping

清空 ~/.m2/repository

http://forum.springsource.org/showthread.php?129882-Error-Cannot-read-lifecycle-mapping

 

 

 

 

 

  • 大小: 52.8 KB
  • 大小: 33.7 KB
分享到:
评论
1 楼 xunke515 2013-12-05  
关于错误:
Convert to maven project: An internal error occurred during: “Enabling Maven Dependency Management”. Unsupported IClasspathEntry kind=4
---------------------------------------------


问题解决了,感谢分享

相关推荐

    Apache Maven入门篇(上)

    在“Apache Maven入门篇(上)”中,我们将探讨Maven的基本概念、安装步骤以及如何创建和管理一个简单的Java项目。 1. Maven的核心概念: - **POM(Project Object Model)**:POM是Maven项目的核心,是一个XML文件...

    Maven实战入门篇

    ### Maven实战入门篇知识点详解 #### 一、Maven简介 **Maven**,源自希伯来语,意为“知识的积累”,也可译为“专家”或“内行”。在软件开发领域,Maven指的是一个跨平台的项目管理工具,主要用于基于Java平台的...

    Maven实战——入门篇

    ### Maven实战——入门篇 #### Maven简介与概念 Maven是一种强大的、跨平台的项目管理工具,主要用于基于Java平台的项目构建、依赖管理和项目信息管理。无论是小型的开源类库项目还是大型的企业级应用,Maven都能...

    Maven实战(入门篇)

    ### Maven实战(入门篇):理解Maven在项目构建中的角色与优势 #### Maven:知识的积累与专家级工具 Maven,源自于希伯来语的“Binyamin”,意指“理解的人”或“知识的积累者”。在软件开发领域,Maven扮演着项目...

    HIbernate+Maven入门demo

    **Hibernate+Maven入门demo详解** 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以更专注于业务逻辑而不是底层的SQL语句。Maven则是一个项目管理工具,它管理...

    Maven入门案例

    本篇文章将深入探讨Maven的入门知识,包括Maven的安装、配置、基本命令以及通过案例来理解Maven的工作原理。 首先,让我们从**Maven的安装**开始。在Windows系统中,你可以访问Maven官方网站下载最新版本的Maven,...

    Maven2教程入门基础

    Maven2教程,项目构建使用,一起学习

    maven 3 jar 运行文件打包

    在本篇内容中,我们将深入探讨如何使用Maven 3进行JAR文件的打包,并了解相关的配置和步骤。 【描述】: 虽然描述中没有具体信息,但通常,创建可运行的JAR文件是为了便于分发和执行Java应用。Maven的`maven-jar-...

    maven快速入门.zip

    Maven介绍 Maven的使用,安装,环境变量配置,仓库配置,maven工程目录认识,ieda中使用及配置maven等等 Maven常用命令 仓库图解 ...这里有一篇很全很基础的文档,这篇文档看完要是还不理解算我输;

    使用IntelliJ IDEA 配置Maven(入门).doc.docx

    本篇文章将详细介绍如何在IntelliJ IDEA中配置Maven,以供初学者入门。 首先,你需要确保已经下载了Maven。Maven的最新版本可以在Apache的官方网站上找到(https://maven.apache.org/download.cgi)。下载完成后,...

    maven资料大全

    Maven3培训教程.pptx MavenQuickReferenceCard.pdf MavenTheDefinitiveGuide.pdf Maven实战.pdf Maven实战——入门篇.pdf Maven学习.doc 持续集成之路——搭建Maven私服.doc 利用m2eclipse生成WTP项目.pdf

    maven的使用_看到一篇很实用的入门教程(菜鸟级入门).doc

    【 Maven 使用入门详解 】 Maven 是一款强大的 Java 项目管理工具,它可以帮助开发者构建、管理和部署 Java 应用程序。本文旨在为初学者提供一份详细且实用的 Maven 入门教程,让菜鸟级别的读者也能轻松上手。 **...

    5分钟熟悉Maven

    ### Maven快速入门指南 #### 一、Maven简介与安装 Maven是一个广泛使用的Java项目管理工具,它能够帮助开发者简化构建过程、依赖管理和项目信息的标准化管理等。本指南将带您快速熟悉Maven的基本操作,只需5分钟...

    Struts2+Spring3+Hibernate4+Maven+EasyUI整合入门012

    本篇将详细介绍这些技术及其整合入门的知识点。 **Struts2** 是一个基于MVC(Model-View-Controller)设计模式的开源Web应用框架,它提供了强大的请求处理和表单验证功能。Struts2的核心在于Action类,它是业务逻辑...

    maven的安装配置及入门

    本篇文章将深入探讨Maven的安装、配置以及如何进行初步使用,帮助初学者快速掌握这一强大的工具。 ### 一、Maven的安装 1. **下载Maven**:首先,你需要访问Apache Maven官方网站...

    Maven入门实战笔记02-基础(2)

    【标题】"Maven入门实战笔记02-基础(2)" 涉及的主要知识点是Maven的基础使用,包括项目的创建、配置文件的理解以及依赖管理等。Maven是一款强大的Java项目管理和集成工具,它帮助开发者统一构建过程,管理项目的依赖...

Global site tag (gtag.js) - Google Analytics