Maven初级学习(二)Maven使用入门
序,学习配置pom.xml,利用maven生成eclipes项目。
一、编写POM
POM Project Obejct Model,项目对象模型。
编写pom.xml,新建文件夹hello-world,新建名为pom.xml的文件,输入如下:
MVN三大坐标,groupId定义了项目属于哪个组,artifactId定义了当前mvn项目在组中唯一的ID,version指定了artifactId的版本,SNAPSHOT表示快照版本,不稳定。name为项目定义了一个更为友好的名称。
- <?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><!--POM模型版本号,对于maven2和maven3,它只能是4.0-->
- <groupId>com.juvenxu.mvnbook</groupId><!--坐标1-->
- <artifactId>hello-world</artifactId><!--坐标2-->
- <!--<packaging>jar</packaging>-->
- <version>1.0-SNAPSHOT</version><!--坐标3-->
- <name>Maven Hello World Project</name>
- <!--<description>Spring Framework: Core</description>
- <url>http://www.springframework.org</url>
- <licenses>
- <license>
- ...
- </license>
- </licenses>
- <scm>
- ...
- </scm>
- <organization>
- ...
- </organization>
- <dependencies>
- <dependency>
- ....
- </dependency>
- </dependencies>
- <distributionManagement>
- <repository>
- ...
- </repository>
- <snapshotRepository>
- ...
- </snapshotRepository>
- </distributionManagement>-->
- </project>
二、编写主代码
maven约定把主代码放到src/main/java/目录下,maven会自动搜寻该目录找到项目主代码。
目录结构如下:
code:
- package com.juvenxu.mvnbook.helloworld;
- public class HelloWorld{
- public String sayHello(){
- return "Hello Maven";
- }
- public static void main(String[] args){
- System.out.print(new HelloWorld().sayHello());
- }
- }
maven clean compile
三、编写测试代码
测试代码需要用到Junit,因此pom.xml需要添加依赖。
scope为test表示该依赖只对测试有效
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.7</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
mvn clean test报错,由于历史原因maven的核心插件之一-compiler插件默认只支持编译Java1.3,需要配置该插件使其支持Java5.
- <build>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- </build>
四、打包和运行
mvn clean install
将main方法添加进jar包,需要借助maven-shade-plugin。配置该插件如下:
五、使用Archetype生成项目骨架
mvn archetype:generate
六、m2eclipse简单使用
1 导入maven项目
2 创建maven项目
3 运行mvn命令
七、NetBeans Maven插件简单使用
有兴趣的可以自己去查,此处不过多介绍。
Maven初级学习(二)Maven使用入门的更多相关文章
- Maven初级学习(一)手把手教你Maven安装
序:学习安装Maven,在Windows和Unix系统上. 一.Windows系统安装MVN 前提正确安装JDK1.5以上的版本 1 下载最先版Mvn http://maven.opache.org/ ...
- Maven基础学习(一)—Maven入门
一.概述 Maven是一个项目管理工具,它包含了一个项目对象模型(Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管 ...
- Java开发学习(二十三)----SpringMVC入门案例、工作流程解析及设置bean加载控制
一.SpringMVC概述 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,是对Servlet进行了封装.SpringMVC是处于Web层的框架,所以其主要的作用就是用来 ...
- maven系列之二maven项目的创建和maven项目的结构
maven系列之一简单介绍了maven的基本信息,安装和配置,大家对maven有一个大概的了解,但是在maven项目开发中远远不够,为了进一步了解maven,现在我们介绍maven项目的创建和mave ...
- Maven学习 二 Maven环境搭建
第一步:下载Maven并解压 注意选择镜像地址,选择国内的会快点 解压目录 Maven目录分析 bin:含有mvn运行的脚本 boot:含有plexus-classworlds类加载器框架 conf: ...
- Maven学习(二)-----Maven启用代理访问
Maven启用代理访问 如果你的公司正在建立一个防火墙,并使用HTTP代理服务器来阻止用户直接连接到互联网.如果您使用代理,Maven将无法下载任何依赖. 为了使它工作,你必须声明在 Maven 的配 ...
- Maven初级学习(三)常用命令
依赖关系查看 mvn dependency:list #列表形式展示依赖 mvn dependency:tree #层级关系展示依赖 mvn dependency:analyze #依赖分析 声明周期 ...
- 大数据初级笔记二:Hadoop入门之Hadoop集群搭建
Hadoop集群搭建 把环境全部准备好,包括编程环境. JDK安装 版本要求: 强烈建议使用64位的JDK版本,这样的优势在于JVM的能够访问到的最大内存就不受限制,基于后期可能会学习到Spark技术 ...
- Redis学习二:Redis入门介绍
一.入门概述 1.是什么 Redis:REmote DIctionary Server(远程字典服务器) 是完全开源免费的,用C语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内 ...
随机推荐
- Nuget包里的依赖包更新到最新版本会不会随主包回滚到旧包的研究
A包中有几个依赖包:A-1包,版本:>=1.0:但是我项目上已经引用了A-1包的2.0版本,那么我添加A包的时候,不会将A-1包2.0版本改成1.0版本,会直接用2.0版本的.
- nagios note
server: nagios nagios_plugin nrpe ip:192.168.1.2 client nagios_plugin xinetd nrpe ip:192.168.1.3 一篇介 ...
- 分布式ID生成器
最近会写一篇分布式的ID生成器的文章,先占位.借鉴Mongodb的ObjectId的生成: 4byte时间戳 + 3byte机器标识 + 2byte PID + 3byte自增id 简单代码: imp ...
- Spring表单参数绑定中对“is”开头的boolean类型字段的的处理
之前在新浪微博上面发了一个微薄: 弱弱的发现在定义boolean类型的时候最好不要使用“is”开头,可以避免一些问题哦 然后有一些朋友朋友问我为什么,当时比较忙,现在写篇文章举一个例子,回复一下这个问 ...
- POJ 1064 Cable master (二分)
题目链接: 传送门 Cable master Time Limit: 1000MS Memory Limit: 65536K 题目描述 有N条绳子,它们长度分别为Li.如果从它们中切割出K条长 ...
- CloseHandle(IntPtr handle)抛异常
[DllImport("Kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)] public static ext ...
- Ubuntu学习总结-05 安装和学习MySQL
1 更新源列表 在终端窗口输入以下命令更新安装源. sudo apt-get update 效果如下图所示: 2 安装MySQL 在终端输入如下命令安装MySQL, sudo apt-get inst ...
- LightOj1089(求点包含几个线段 + 线段树)
题目链接 题意:n( n <= 50000 ) 个线段,q ( q <= 50000) 个点,问每个点在几个线段上 线段端点的和询问的点的值都很大,所以必须离散化 第一种解法:先把所有的线 ...
- ES6之let(理解闭包)和const命令
ES6之let(理解闭包)和const命令 最近做项目的过程中,使用到了ES6,因为之前很少接触,所以使用起来还不够熟悉.因此购买了阮一峰老师的ES6标准入门,在此感谢阮一峰老师的著作. 我们知道,E ...
- 什么是linux的ftp
vsftpd是一款在Linux发行版中最受推崇的FTP服务器程序.特点是小巧轻快,安全易用.并且是一个完全免费开放源码的ftp软件ftp的作用: FTP(File Transfer Protocol, ...