序,学习配置pom.xml,利用maven生成eclipes项目。

一、编写POM

POM Project Obejct Model,项目对象模型。

编写pom.xml,新建文件夹hello-world,新建名为pom.xml的文件,输入如下:

MVN三大坐标,groupId定义了项目属于哪个组,artifactId定义了当前mvn项目在组中唯一的ID,version指定了artifactId的版本,SNAPSHOT表示快照版本,不稳定。name为项目定义了一个更为友好的名称。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
  5. http://maven.apache.org/maven-v4_0_0.xsd">
  6. <modelVersion>4.0.0</modelVersion><!--POM模型版本号,对于maven2和maven3,它只能是4.0-->
  7. <groupId>com.juvenxu.mvnbook</groupId><!--坐标1-->
  8. <artifactId>hello-world</artifactId><!--坐标2-->
  9. <!--<packaging>jar</packaging>-->
  10. <version>1.0-SNAPSHOT</version><!--坐标3-->
  11. <name>Maven Hello World Project</name>
  12. <!--<description>Spring Framework: Core</description>
  13. <url>http://www.springframework.org</url>
  14.  
  15. <licenses>
  16. <license>
  17. ...
  18. </license>
  19. </licenses>
  20. <scm>
  21. ...
  22. </scm>
  23. <organization>
  24. ...
  25. </organization>
  26. <dependencies>
  27. <dependency>
  28. ....
  29. </dependency>
  30. </dependencies>
  31. <distributionManagement>
  32. <repository>
  33. ...
  34. </repository>
  35. <snapshotRepository>
  36. ...
  37. </snapshotRepository>
  38. </distributionManagement>-->
  39. </project>

二、编写主代码

maven约定把主代码放到src/main/java/目录下,maven会自动搜寻该目录找到项目主代码。

目录结构如下:

code:

  1. package com.juvenxu.mvnbook.helloworld;
  2.  
  3. public class HelloWorld{
  4. public String sayHello(){
  5. return "Hello Maven";
  6. }
  7. public static void main(String[] args){
  8. System.out.print(new HelloWorld().sayHello());
  9. }
  10. }

maven clean compile

三、编写测试代码

测试代码需要用到Junit,因此pom.xml需要添加依赖。

scope为test表示该依赖只对测试有效

  1. <dependencies>
  2. <dependency>
  3. <groupId>junit</groupId>
  4. <artifactId>junit</artifactId>
  5. <version>4.7</version>
  6. <scope>test</scope>
  7. </dependency>
  8. </dependencies>

mvn clean test报错,由于历史原因maven的核心插件之一-compiler插件默认只支持编译Java1.3,需要配置该插件使其支持Java5.

  1. <build>
  2. <plugin>
  3. <groupId>org.apache.maven.plugins</groupId>
  4. <artifactId>maven-compiler-plugin</artifactId>
  5. <configuration>
  6. <source>1.5</source>
  7. <target>1.5</target>
  8. </configuration>
  9. </plugin>
  10. </build>

四、打包和运行

mvn clean install

将main方法添加进jar包,需要借助maven-shade-plugin。配置该插件如下:

五、使用Archetype生成项目骨架

    mvn archetype:generate

六、m2eclipse简单使用

1 导入maven项目

2 创建maven项目

3 运行mvn命令

七、NetBeans Maven插件简单使用

有兴趣的可以自己去查,此处不过多介绍。

Maven初级学习(二)Maven使用入门的更多相关文章

  1. Maven初级学习(一)手把手教你Maven安装

    序:学习安装Maven,在Windows和Unix系统上. 一.Windows系统安装MVN 前提正确安装JDK1.5以上的版本 1 下载最先版Mvn http://maven.opache.org/ ...

  2. Maven基础学习(一)—Maven入门

    一.概述      Maven是一个项目管理工具,它包含了一个项目对象模型(Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管 ...

  3. Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制

    一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...

  4. maven系列之二maven项目的创建和maven项目的结构

    maven系列之一简单介绍了maven的基本信息,安装和配置,大家对maven有一个大概的了解,但是在maven项目开发中远远不够,为了进一步了解maven,现在我们介绍maven项目的创建和mave ...

  5. Maven学习 二 Maven环境搭建

    第一步:下载Maven并解压 注意选择镜像地址,选择国内的会快点 解压目录 Maven目录分析 bin:含有mvn运行的脚本 boot:含有plexus-classworlds类加载器框架 conf: ...

  6. Maven学习(二)-----Maven启用代理访问

    Maven启用代理访问 如果你的公司正在建立一个防火墙,并使用HTTP代理服务器来阻止用户直接连接到互联网.如果您使用代理,Maven将无法下载任何依赖. 为了使它工作,你必须声明在 Maven 的配 ...

  7. Maven初级学习(三)常用命令

    依赖关系查看 mvn dependency:list #列表形式展示依赖 mvn dependency:tree #层级关系展示依赖 mvn dependency:analyze #依赖分析 声明周期 ...

  8. 大数据初级笔记二:Hadoop入门之Hadoop集群搭建

    Hadoop集群搭建 把环境全部准备好,包括编程环境. JDK安装 版本要求: 强烈建议使用64位的JDK版本,这样的优势在于JVM的能够访问到的最大内存就不受限制,基于后期可能会学习到Spark技术 ...

  9. Redis学习二:Redis入门介绍

    一.入门概述 1.是什么 Redis:REmote DIctionary Server(远程字典服务器) 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内 ...

随机推荐

  1. Nuget包里的依赖包更新到最新版本会不会随主包回滚到旧包的研究

    A包中有几个依赖包:A-1包,版本:>=1.0:但是我项目上已经引用了A-1包的2.0版本,那么我添加A包的时候,不会将A-1包2.0版本改成1.0版本,会直接用2.0版本的.

  2. nagios note

    server: nagios nagios_plugin nrpe ip:192.168.1.2 client nagios_plugin xinetd nrpe ip:192.168.1.3 一篇介 ...

  3. 分布式ID生成器

    最近会写一篇分布式的ID生成器的文章,先占位.借鉴Mongodb的ObjectId的生成: 4byte时间戳 + 3byte机器标识 + 2byte PID + 3byte自增id 简单代码: imp ...

  4. Spring表单参数绑定中对“is”开头的boolean类型字段的的处理

    之前在新浪微博上面发了一个微薄: 弱弱的发现在定义boolean类型的时候最好不要使用“is”开头,可以避免一些问题哦 然后有一些朋友朋友问我为什么,当时比较忙,现在写篇文章举一个例子,回复一下这个问 ...

  5. POJ 1064 Cable master (二分)

    题目链接: 传送门 Cable master Time Limit: 1000MS     Memory Limit: 65536K 题目描述 有N条绳子,它们长度分别为Li.如果从它们中切割出K条长 ...

  6. CloseHandle(IntPtr handle)抛异常

    [DllImport("Kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] public static ext ...

  7. Ubuntu学习总结-05 安装和学习MySQL

    1 更新源列表 在终端窗口输入以下命令更新安装源. sudo apt-get update 效果如下图所示: 2 安装MySQL 在终端输入如下命令安装MySQL, sudo apt-get inst ...

  8. LightOj1089(求点包含几个线段 + 线段树)

    题目链接 题意:n( n <= 50000 ) 个线段,q ( q <= 50000) 个点,问每个点在几个线段上 线段端点的和询问的点的值都很大,所以必须离散化 第一种解法:先把所有的线 ...

  9. ES6之let(理解闭包)和const命令

    ES6之let(理解闭包)和const命令 最近做项目的过程中,使用到了ES6,因为之前很少接触,所以使用起来还不够熟悉.因此购买了阮一峰老师的ES6标准入门,在此感谢阮一峰老师的著作. 我们知道,E ...

  10. 什么是linux的ftp

    vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用.并且是一个完全免费开放源码的ftp软件ftp的作用: FTP(File Transfer Protocol, ...