从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的更多相关文章

  1. 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 ...

  2. 从Java角度理解Angular之入门篇:npm, yarn, Angular CLI

    本系列从Java程序员的角度,带大家理解前端Angular框架. 本文重点介绍Angular的开发.编译工具:npm, yarn, Angular CLI,它们就像Java在中的Maven,同时顺便介 ...

  3. (转载)从Java角度理解Angular之入门篇:npm, yarn, Angular CLI

    本系列从Java程序员的角度,带大家理解前端Angular框架. 本文是入门篇.笔者认为亲自动手写代码做实验,是最有效最扎实的学习途径,而搭建开发环境是学习一门新技术最需要先学会的技能,是入门的前提. ...

  4. 关于pom.xml的一些问题的理解

    最近在pom上出了一些问题,搞了一天才理解了一些问题,记录一下. 当在覆盖本地repository包之后,pom.xml上面出现了一个x. 当mvn->update project之后,还是有许 ...

  5. pom.xml配置,针对mvn clean install -P参数(环境参数)打包

    pom.xml配置,针对mvn clean install -P参数(环境参数)打包 比如你有2个环境,一个dev,一个prod, 然后你在mvn打包的时候,可以通过-P来打包,是打dev包,还是pr ...

  6. 037 关于pom.xml的一些问题的理解

    最近在pom上出了一些问题,搞了一天才理解了一些问题,记录一下. 当在覆盖本地repository包之后,pom.xml上面出现了一个x. 当mvn->update project之后,还是有许 ...

  7. pom.xml 如果使用 mvn exec:exec 命令运行项目

    pom.xml 如果使用 mvn exec:exec 命令运行项目,红色字体要与groupid相同 <project xmlns="http://maven.apache.org/PO ...

  8. mvn 用指定setting.xml 执行指定pom.xml

    mvn package -f pom.xml -s setting.xml clean install

  9. 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"命令清除编 ...

随机推荐

  1. 【笔记】Cocos2dx学习笔记

    自建场景类 自建场景类BaseScene继承与Scene类,在init函数中添加了默认的,键盘与鼠标事件的响应,添加了一个用于读取XML文件的字典,添加了一个结束场景的方法. 类的声明代码如下: #i ...

  2. 开源列式存储引擎Parquet和ORC

    转载自董的博客 相比传统的行式存储引擎,列式存储引擎具有更高的压缩比,更少的IO操作而备受青睐(注:列式存储不是万能高效的,很多场景下行式存储仍更加高效),尤其是在数据列(column)数很多,但每次 ...

  3. Selenium的使用

    https://blog.csdn.net/qq_21445981/article/details/78386699 https://blog.csdn.net/duzilonglove/articl ...

  4. C# wnform 请求http ( get , post 两种方式 )

    1.Get请求 string strURL = "http://localhost/WinformSubmit.php?tel=11111&name=张三";System. ...

  5. three.js 第二篇:场景 相机 渲染器 物体之间的关系

    w我用画画来形容他们之间的关系 场景就是纸张 相机就是我们的眼睛 物体就是在我们脑海中构思的那个画面 渲染器就是绘画这个动作 场景(Scene): 初始化:var scene = new THREE. ...

  6. 利用Fiddler编写Jmeter接口测试

    利用Fiddler抓包APP应用接口,在Jmeter编写接口测试脚本 1.用Fiddler对Android用用进行抓包 Fiddler介绍: Fiddler是一款非常流行并且实用的http抓包工具,它 ...

  7. 『Python CoolBook』使用ctypes访问C代码_上_用法讲解

    一.动态库文件生成 源文件hello.c #include "hello.h" #include <stdio.h> void hello(const char *na ...

  8. Dropout, DropConnect ——一个对输出,一个对输入

    Deep learning: Dropout, DropConnect from:https://www.jianshu.com/p/b349c4c82da3 Dropout 训练神经网络模型时,如果 ...

  9. call、apply、bind,你有多了解?

    call.apply.bind 1.相同也不同 我们先从浅显的部分开始讲, 这三个方法都可以改变this的指向,都可以进行传参,第一个参数都是修改this的指向 call() 和 apply() 改变 ...

  10. day15_python_1124

    03序列化模块 04加密模块 05 os sys 模块 06 collections 模块 # 03 序列化模块 # 网络传输数据:字节 bytes# 文件写入内容:bytes , str # dic ...