maven工程入门
1. 为什么要使用maven?
毕业开始工作,项目组用的maven-spring开发的,不得不了解一下,看过很多介绍,其中maven最大的特点就是
管理jar包和版本管理
(参考:https://www.cnblogs.com/zhangxh20/p/5134812.html)
2.导入maven工程

导入工程本身不难,大多数工程与工程是相互依赖的,在编译运行的时候就容易会报错,批量将工程导入之后,逐个编译,在逐个运行,能减少因为项目依赖报错
其次的话,maven工程大多数都是通过pom.xml文件来管理的,所以了解pom.xml对学习maven很重要
(参考:https://www.cnblogs.com/xiaobaizhiqian/p/8214035.html)
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>
<groupId>...</groupId> 组别,一般为域名的反写
<artifactId>...</artifactId> 项目名, 在Maven中查找类和方法或配置文件时就是以groupId和artifactId为坐标来进行的
<version>...</version> 版本号,为了管理工程的版本,在引用依赖时,版本号也是不可缺少的,错误的版本号带来的麻烦。。。
<packaging>...</packaging> 打包方式:一般父工程是以pom方式打包,子工程依赖于父工程以jar方式打包,一般在子工程的pom.xml里不会写这个标签对 <!-- 依赖配置 --> 在maven repository中查找依赖的按1.本地仓库、2.中央仓库、3.远程仓库的顺位查找目标jar
<dependencies>
<groupId>...</groupId> 依赖过程中需要指明依赖的jar包域名、jar包名称以及版本号
<artifactId>...</artifactId>
<version>...</version>
</dependencies>
<parent>...</parent> 父工程依赖 一般在子项目中出现,由父项目的pom.xml同一管理某些公共jar包的banbenhgai
<dependencyManagement>...</dependencyManagement>
<modules>...</modules>
<properties>...</properties> <!-- 构建配置 -->
<build>...</build>
<reporting>...</reporting> <!-- 项目信息 -->
<name>...</name>
<description>...</description>
<url>...</url>
<inceptionYear>...</inceptionYear>
<licenses>...</licenses>
<organization>...</organization>
<developers>...</developers>
<contributors>...</contributors> <!-- 环境设置 -->
<issueManagement>...</issueManagement>
<ciManagement>...</ciManagement>
<mailingLists>...</mailingLists>
<scm>...</scm>
<prerequisites>...</prerequisites>
<repositories>...</repositories>
<pluginRepositories>...</pluginRepositories>
<distributionManagement>...</distributionManagement>
<profiles>...</profiles>
</project>
3. maven工程 clean compile install记忆update。
- clean,执行该命令会删除项目路径下的target文件,但是不会删除本地的maven仓库已经生成的jar文件
- compile,编译命令,会在项目路径下生成一个target目录,在该目录中包含一个classes文件夹,里面全是生成的class文件及字节码文件
- package,这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功能进行编译,同时会在target目录下生成项目的jar/war文件
- install,该命令包含了package命令功能,不但会在项目路径下生成class文件和jar包,同时会在你的本地maven仓库生成jar文件,供其他项目使用
所以正常编译项目只需要install就可以了
(参考:https://www.bbsmax.com/A/WpdKmGRAJV/)
update project:当maven工程有结构上的变化时(pom文件或者*.classpath文件发生变化时),通常需要用更新工程的手段来新增或者修改相关文件。
maven工程入门的更多相关文章
- idea 创建maven工程(入门)
转:http://blog.csdn.net/qq_32588349/article/details/51461182 1. 下载Maven 官方地址:http://maven.apache.org/ ...
- 关于idea maven工程创建struts2入门配置及案例
1.在maven工程下添加需要导入的jar包节点 <dependencies> <dependency> <groupId>org.apache.struts< ...
- Maven——快速入门手册(学习记录)
前言: 前段时间进行了一点maven的入门学习,在这里做个记录,希望能帮到一些正在学习的朋友们.maven版本为3.3.9.希望大家觉得好的点个赞,觉得不好的多提提意见和建议做个交流.这里也贴出我学习 ...
- (4)Maven快速入门_4在Spring+SpringMVC+MyBatis+Oracle+Maven框架整合运行在Tomcat8中
利用Maven 创建Spring+SpringMVC+MyBatis+Oracle 项目 分了三个项目 Dao (jar) Service (jar) Controller (web) ...
- (1)Maven快速入门_1maven安装
Maven 快速入门 1.1 Maven官网下载 windows 系统 下载 下图红色框选处. 下载到本地解压, 创建一个本地maven仓库的目录 maven_lib 配置Maven的环境变量 ...
- spring 学习(一):使用 intellijIDEA 创建 maven 工程进行 Spring ioc 测试
spring学习(一):使用 intellijIDEA 创建 maven 工程进行 Spring ioc 测试 ioc 概念 控制反转(Inversion of Control,缩写为IOC),是面向 ...
- Maven 学习(一)-Maven 使用入门
http://www.cnblogs.com/xdp-gacl/p/3498271.html http://www.cnblogs.com/xdp-gacl/p/4240930.html 一.Mave ...
- Maven快速入门(一)Maven介绍及环境搭建
做开发的程序员都知道,在系统开发需要各自各样的框架.工具.其中有一种工具不管你是初级程序员还是高级程序员都必须熟练掌握的,那就是项目管理工具(maven.ant.gradle).接下来就总结Maven ...
- Maven快速入门(二)手动创建maven项目hellomaven
之前讲过Maven介绍及环境搭建,介绍了maven的作用和如何搭建maven环境.接下来就以一个helloworld的例子来说一说如何创建maven项目以及maven项目的项目结构,最后讲maven如 ...
- Drools创建Maven工程
1.说明 本文介绍创建Drools的Maven工程的方法, 仅使用Eclipse开发工具, 不使用Drools的相关插件, 先创建一个Maven工程, 然后引入Drools的相关依赖即可, 最后再写一 ...
随机推荐
- 小程序Day01
注册一个微信小程序账号测试号不能用云开发 构建npm(下载node.js) npm i @vant/weapp -S --production if wrong npm init//npm intal ...
- springboot集成Thumbnailator压缩图片
一.参考大神博客 1.https://blog.51cto.com/u_11269274/5118649 2.https://blog.csdn.net/weixin_44722978/article ...
- codeforces 165C Another Problem on Strings 二分or双指针
题意:给一个01字符串s,找出s包含恰好k个1的连续字串个数 解法: 显然是简单的双指针or二分的题,但由于k=0的存在,使得双指针的边界条件十分难写,所以应该选择二分! #include<bi ...
- Python 画极坐标图
需要用Python画极坐标等值线图,以下是所学的一些东西,特此记录 -------------------------------------------------- 翻译自 https://sta ...
- 做文件上传功能时,dubbo对MultipartFile文件传输时,一个bug:Fail to decode request due to: RpcInvocation
三月 22, 2019 2:37:27 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() fo ...
- QPushButton CSS样式
QPushButton:!hover { color:white; font: 20pt "楷体"; border-radius:10px; border:1px solid rg ...
- Unity中的批处理优化与GPU Instancing【转】
我们都希望能够在场景中投入一百万个物体,不幸的是,渲染和管理大量的游戏对象是以牺牲CPU和GPU性能为代价的,因为有太多Draw Call的问题,最后我们必须找到其他的解决方案.在本文中,我们将讨论两 ...
- 打开网页自动下载APP
整体主要使用script控制,目前Android通过,iOS未测试. a标签源码部分 <a id="Download"href="javascript:;" ...
- 【SQL Server】获取表格插入的id(二)——newID()
现在有一个需求,插入api调用日志表.然后,发起HTTP请求()请求时,需要带入日志表的id). 简化无关的添加,SQL Server表格设计如下: CREATE TABLE mylog ( id I ...
- Docker 安装流程-CentOS
0.安装Docker Docker 分为 CE 和 EE 两大版本.CE 即社区版(免费,支持周期 7 个月),EE 即企业版,强调安全,付费使用,支持周期 24 个月. Docker CE 分为 s ...