maven实验

ps:先水一把,2个月没更新了。最近在公司实习,看了webx框架,其中有一个maven工具(比较类似于ant,还是原来的项目分支,比ant强大一些),然后写了一个关于这个工具的大体流程。

什么是maven?

http://baike.baidu.com/view/336103.htm?fr=aladdin

maven的生命周期?

参考http://www.cnblogs.com/haippy/archive/2012/07/04/2576453.html

Default Lifecycle 生命周期阶段 描述
validate 验证 确保当前配置和 POM 的内容是有效的。这包含对 pom.xml 文件树的验证。
initialize 初始化 在执行构建生命周期的主任务之前可以进行初始化。
generate-sources 生成源码 代码生成器可以开始生成在以后阶段中处理或编译的源代码。
process-sources 处理源码 提供解析、修改和转换源码。常规源码和生成的源码都可以在这里处理。
generate-resources 生成资源 可以生成非源码资源。通常包括元数据文件和配置文件。
process-resources 处理资源 处理非源码资源。修改、转换和重定位资源都能在这阶段发生。
compile 编译 编译源码。编译过的类被放到目标目录树中。
process-classes 处理类 处理类文件转换和增强步骤。字节码交织器和常用工具常在这一阶段操作。
generate-test-sources 生成测试源码 mojo 可以生成要操作的单元测试代码。
process-test-sources 处理测试源码 在编译前对测试源码执行任何必要的处理。在这一阶段,可以修改、转换或复制源代码。
generate-test-resources 生成测试资源
允许生成与测试相关的(非源码)资源。

process-test-resources 处理测试资源 可以处理、转换和重新定位与测试相关的资源。
test-compile 测试编译 编译单元测试的源码。
process-test-classes   对测试编译生成的文件做后期处理(需Maven2.0.5及以上)
test 测试 运行编译过的单元测试并累计结果。
prepare-package   执行打包前的所有操作(需Maven2.1及以上)
package 打包 将可执行的二进制文件打包到一个分布式归档文件中,如 JAR 或 WAR。
pre-integration-test 前集成测试 准备集成测试。这种情况下的集成测试是指在一个受到一定控制的模拟的真

实部署环境中测试代码。这一步能将归档文件部署到一个服务器上执行。

integration-test 集成测试 执行真正的集成测试。
post-integration-test 后集成测试 解除集成测试准备。这一步涉及测试环境重置或重新初始化。
verify 检验 检验可部署归档的有效性和完整性。过了这个阶段,将安装该归档。
install 安装 将该归档添加到本地 Maven 目录。这一步让其他可能依赖该归档的模块可以使用它。
deploy 部署
将该归档添加到远程 Maven 目录。这一步让这个工件能为更多的人所用。

maven快速上手实验一把

1.下载maven,谷歌搜索下~

下载为apache-maven-3.2.3 文件

配置环境变量bin配置到path中

cmd下mvn v 命令测试下是否ok.

成功后,

内部有

bin(包括maven的一些命令),

boot(plexus-classworlds-2.5.1.jar 估计是预先处理类字节的jar包),

conf(配置项,包括日志等)

lib(函数支持库,以及扩展包等,增强功能用的)

2.

创建一个类似这样的目录结构

maven

maven1202

src

main

java

com

alibaba

maven

Hello.java

test

pom.xml

---------------------

pom.xml内容,这个配置文件的详细介绍,参看http://blog.csdn.net/adeyi/article/details/17259479

<?xml version="1.0" encoding="UTF-8"?>
<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.alibaba.maven</groupId>
  <!--本组织之类中唯一的ID-->
  <artifactId>maven1202</artifactId>
  <!--当前的版本号-->
  <version>1.0</version>
  <!--元素声明了一个对于用户更为友好的项目名字-->
	<name>maven</name>
</project>

3.cmd切换目录至maven1202

敲命令mvn compile进行mvn项目编译,时间有点长,耐心等待

编译完成后,在同src,pom.xml目录中,出现一个target目录,里面包含着编译之后的class文件(哎,这个编译实验原理不就是javac下maven目录并输出结果~)

4.继续敲命令mvn package对maven项目打包输出jar

这个输出jar的过程可能会出现erro,不过多试几次就行了~测试过程中第三次才ok

jar最终会输出在target目录中

5.敲命令

java -cp maven1202-1.0.jar com.alibaba.maven.Hello

输出Hello,java的内容,至此完成了maven的构建与输出

时间: 2024-10-13 14:18:30

maven实验的相关文章

Spring+Maven学习实验- Spring AOP面向切面编程(二)

在 Spring AOP 中,有 3 个常用的概念,Advices . Pointcut . Advisor ,解释如下: Advices :表示一个 method 执行前或执行后的动作. Pointcut :表示根据 method 的名字或者正则表达式去拦截一个 method . Advisor : Advice 和 Pointcut 组成的独立的单元,并且能够传给 proxy factory 对象. 我们可以用名字匹配法和正则表达式匹配法去匹配要拦截的 method . 1 Pointcut

maven(二) maven项目构建ssh工程(父工程与子模块的拆分与聚合)

前一节我们明白了maven是个什么玩意,这一节就来讲讲他的一个重要的应用场景,也就是通过maven将一个ssh项目分割为不同的几个部分独立开发,很重要,加油 --WH 一.maven父工程与子模块的拆分与聚合原理 问题描述:将ssh工程拆分为多个模块开发 1.1.拆分原理 创建一个maven project(pom),然后在创建三个子模块(maven moudule),其中三个子模块,分别为 dao.service.web,也就是将三层的内容分别独立为一个项目,进一步将耦合性降低,其中如何将他们

Maven 项目打包需要注意到的那点事儿

1. 关于 Maven 打 war 包 <使用 Eclipse 的 Maven 2 插件开发一个 JEE 项目>详细介绍了如何在 Eclipse 使用 Maven 新建一个 JEE 项目并对其进行断点跟踪调试,但是没有介绍如何对 JEE 项目打 war 包.其实很简单,你只需要把 pom.xml 中的 <packaging>jar</packaging> 换成 <packaging>war</packaging> 就可以使用 mvn packag

Maven介绍与安装配置

Maven介绍: Maven是项目对象模型(POM),是一个项目模块管工具.能很好的管理模块化开发.模块jar包的分享,并且可以自动下载工程所需要的依赖包. 在开发的过程中我们需要一些可重用的代码来加快开发的速度,因为总不可能一些通用的代码每次都需要自己编写吧,那样的话效率很低,或许我们可以将这些类复制到别的开发工具中使用,但是一两个类还好说,如果有几十个类该如何复制,而且用复制这种方式的话代码也容易被修改或删除. 在早期没有Maven的时候,有一种方式是将可重用的代码打包成jar包,然后用导j

maven修改远程和本地仓库地址

简介:我们用maven的时候,maven自带的远程中央仓库经常会很慢,还有默认本地仓库是在c盘C:\Users\你的电脑用户账号\.m2\repository, 对于有强迫症的人,总是看的不爽,下面介绍下经验: 我的环境: maven:3.3.9 jdk:1.8_112 intellij idea:2016.3 windows:win10 试验项目:spring boot 1.5.1 首先你需要安装maven,我的maven安装的是3.3.9 maven修改远程中央仓库地址: 找到你的maven

maven搜索仓库

——爱迪生经过1001次实验成功发明了电灯 1.maven搜索服务 国外常见maven仓库:可能打开很慢甚至无法打开,解决方案.代理.svn或国内maven搜索仓库 1.1 Sonatype Nexus http://repository.sonatype.org/ 1.2 Jarvana http://www.jarvana.com/ 1.3MVNbrowser http://www.mvnbrowser.com 1.4 MVNrepository (访问速度比上面三个快些) http://m

Hadoop第3周练习--Hadoop2.X编译安装和实验

1    练习题目 2    编译Hadoop2.X 64bit 2.1  运行环境说明 2.1.1   硬软件环境 2.1.2   集群网络环境 2.2  环境搭建 2.2.1   JDK安装和Java环境变量配置 2.2.2   安装并设置maven 2.2.3   以root用户使用yum安装svn 2.2.4   以root用户使用yum安装autoconf automake libtool cmake 2.2.5   以root用户使用yum安装ncurses-devel 2.2.6 

【转】【项目管理与构建】Maven

在现实的企业中,以低成本.高效率.高质量的完成项目,不仅仅需要技术大牛,企业更加需要管理大牛,管理者只懂技术是远远不够的.当然,管理可以说有很多的方面,例如:对人员的管理,也有对项目的管理等等.如果你想成为一个优秀的管理者,你必须得会使用高大上的管理工具. 从这篇博文开始,我会给大家介绍更多的项目管理工具,经过点点滴滴的积累,不断的进步,最终成为管理大牛. 简介 我先看一下Apache官网的解释: [java] view plain copy print? Apache Maven is a s

maven入门(上)

本文摘自oracle Java社区 作者:George Ma http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-1-406235-zhs.html 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法.这个入门篇分上下两篇.本文着重动手,用 maven 来构建运行 hellow world 程序,体会一下不用任何