从npm 角度理解 mvn 的 pom.xml
从npm 角度理解 mvn 的 pom.xml
pom -- project object model. 用于描述项目的配置:
- 基础说明
- 依赖
- 如何构建运行
类似 node.js 的 package.json
mvn 与 npm 也是有雷同的地方。
<dependencies>
<!-- Unit Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
</dependency>
<!-- Spring Core -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependencies>
dependencies in pom.xml 相当于 项目的依赖包,启动的时候会去找,如果没有就去下载。
类似npm 的package.json dependency
dependency 里面的主要信息groupId, 相当与组织机构的项目组ID,attifactId 项目的通用ID,version 当然是要的了。
然而看起来,要记住的内容十分多,不如npm : 只需要知道package name, version 简单可以用latest。记住groupid 真的不容易。However,其实并不需要真的记住。有IDE 工具协助:
安装elipse , maven plugin, 打开 pom.xml , 选择 dependencies, 选择 Add, 直接在search 处,输入你的package name, 会列出搜索结果,自动使用 latest version。当然也可以展开细节list指定某个特定的version。
如果不用elipse, 也可:
http://oqln5pzeb.bkt.clouddn.com/17-7-29/90028337.jpg
http://oqln5pzeb.bkt.clouddn.com/17-7-29/90028337.jpg
mvn package
compile 正常后,如果你用的archeType 是web-app,你可以打包到tomcat 的webapp目录去运行;其他的类似 譬如打包出jar。
tomcat deploy
以一个archType 为web-app 的项目为例,mvn package 后, 除了上述的cp 到tomcat webapp 目录,
另外一种手动页面的部署方法:
localhost:8080 --> manage app
按要求输入用户名密码后,
http://oqln5pzeb.bkt.clouddn.com/17-7-29/84565023.jpg
在输入 locahost:8080/hello
则可以看到hello world 页面.
如果遇到403,请参考这里。
https://www.mkyong.com/tomcat/tomcat-default-administrator-password/
trouble sovling when mvn search not working
reindex maven project with Eclipse
mvn tomcat:run
mvn jetty:run
tomcat/jetty 是一些mvn plugin.
jetty 参考配置
所谓mvn plugin 可以理解成,这是使得可以集成与mvn 命令一起使用的插件。官方文档参考
Also:
mvn 可用编译,打包,安装,build项目
编译:(nodejs 里面没有这个--因动态语言)
mvn compile
compile 会下载dependency依赖。
打包:(nodejs 里面没有这个--因动态语言)
4.0.0
org.springframework
gs-maven
jar
0.1.0
运行mvn package 后,会产生 {$artifactId}-{$version}-jar,如上述的:gs-maven-0.1.0.jar (target 文件夹)
安装 (类似: npm install)
mvn install
build (类似npm script 里面的自定义脚本: npm start )
根据plugin 输入参数构建,如上述的:mvn jetty:run
注意: 使用jetty 来跑的时候,需要配置jetty 的plugin
<build>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.26</version>
</plugin>
</plugins>
<finalName>hello</finalName>
</build>
常见的plugins
http://www.cnblogs.com/pixy/p/4977550.html
类似 npm clean , npm ,see npm --help
speed it up
mvn 经常很慢,等很久都没完成。参考以下链接
mvn -T 4 install -- will use 4 threads
从npm 角度理解 mvn 的 pom.xml的更多相关文章
- mvn 与 pom.xml
mvn 安装 wget http://mirrors.hust.edu.cn/apache//maven/maven-3/3.0.5/binaries/apache-maven-3.0.5-bin.t ...
- 从Java角度理解Angular之入门篇:npm, yarn, Angular CLI
本系列从Java程序员的角度,带大家理解前端Angular框架. 本文重点介绍Angular的开发.编译工具:npm, yarn, Angular CLI,它们就像Java在中的Maven,同时顺便介 ...
- (转载)从Java角度理解Angular之入门篇:npm, yarn, Angular CLI
本系列从Java程序员的角度,带大家理解前端Angular框架. 本文是入门篇.笔者认为亲自动手写代码做实验,是最有效最扎实的学习途径,而搭建开发环境是学习一门新技术最需要先学会的技能,是入门的前提. ...
- 关于pom.xml的一些问题的理解
最近在pom上出了一些问题,搞了一天才理解了一些问题,记录一下. 当在覆盖本地repository包之后,pom.xml上面出现了一个x. 当mvn->update project之后,还是有许 ...
- pom.xml配置,针对mvn clean install -P参数(环境参数)打包
pom.xml配置,针对mvn clean install -P参数(环境参数)打包 比如你有2个环境,一个dev,一个prod, 然后你在mvn打包的时候,可以通过-P来打包,是打dev包,还是pr ...
- 037 关于pom.xml的一些问题的理解
最近在pom上出了一些问题,搞了一天才理解了一些问题,记录一下. 当在覆盖本地repository包之后,pom.xml上面出现了一个x. 当mvn->update project之后,还是有许 ...
- pom.xml 如果使用 mvn exec:exec 命令运行项目
pom.xml 如果使用 mvn exec:exec 命令运行项目,红色字体要与groupid相同 <project xmlns="http://maven.apache.org/PO ...
- mvn 用指定setting.xml 执行指定pom.xml
mvn package -f pom.xml -s setting.xml clean install
- maven 依赖文件 pom.xml 编译 mvn compile 运行 不用mvn exec:java -Dexec.mainClass="hello.HelloWorld" 打成jar包 mvn package mvn install http://blog.csdn.net/yaya1943/article/details/48464371
使用maven编译Java项目 http://blog.csdn.net/yaya1943/article/details/48464371 使用"mvn clean"命令清除编 ...
随机推荐
- HDU 4010 Query on The Trees(动态树)
题意 给定一棵 \(n\) 个节点的树,每个点有点权.完成 \(m\) 个操作,操作四两种,连接 \((x,y)\) :提 \(x\) 为根,并断 \(y\) 与它的父节点:增加路径 \((x,y)\ ...
- C# 说说lock到底锁谁?(2)
摘要 今天在园子里面有园友反馈关于[C#基础]说说lock到底锁谁?文章中lock(this)的问题.后来针对文章中的例子,仔细想了一下,确实不准确,才有了这篇文章的补充,已经对文章中的demo进行修 ...
- ceph储存的S3接口实现(支持断点续传)
最近公司准备接ceph储存,研究了一番,准备用亚马逊的s3接口实现,实现类如下: /** * Title: S3Manager * Description: Ceph储存的s3接口实现,参考文档: * ...
- 19 中山重现赛 1002 triangle
题意:给一组数据a[0]...a[n], n<5e6, a[i]<2^31-1(1e9)判断是否存在三角形数 首先想到的是排序,若a[i]+a[i+1]>a[i+2] , 则存在三 ...
- [Spring MVC] 取控制器返回的ModelAndView/Map/Model/Request的对象
${key }页面可取, <input value="${key}"> 或者<%=request.getParameter("key")%&g ...
- 『TensorFlow』卷积层、池化层详解
一.前向计算和反向传播数学过程讲解
- JavaScript基础四
1.13 Js中的面向对象 1.13.1 创建对象的几种常用方式 1.使用Object或对象字面量创建对象 2.工厂模式创建对象 3.构造函数模式创建对象 4.原型模式创建对象 1.使用Object或 ...
- [la P5031&hdu P3726] Graph and Queries
[la P5031&hdu P3726] Graph and Queries Time Limit: 10000/5000 MS (Java/Others) Memory Limit: ...
- python -- 约束、异常处理、MD5
1.类的约束 1.写一个父类,父类中的某个方法要抛出一个异常 NotImplementedError class Base: # 对子类进行了约束,必须重写该方法 def login(se ...
- Win10下安装zio
0x00 报错:capstone.dll缺失,就算用pip安装也不行. 推荐:kali下安装pwn,pwntools,zio