设为首页 收藏本站
查看: 764|回复: 0

[经验分享] 项目管理工具:Maven使用方法总结

[复制链接]

尚未签到

发表于 2017-2-28 11:12:32 | 显示全部楼层 |阅读模式
一、概念
  Maven是一个项目管理和构建自动化工具。Maven提供了开发人员构建一个完整的生命周期框架,开发团队可以自动完成项目的基础工具建设。一个Maven项目的结果如下图所示:
DSC0000.png


二、Maven安装
  在安装maven之前,先保证安装了JDK,然后在Apache的官网上http://maven.apache.org/download.cgi下载最新版本的Binary zip archive包。
  下载完解压放在本地的某个路径下,然后配置maven环境变量:
  新建变量名M2_HOME
  变量值:C:\Program Files\apache-maven-3.3.9
  在PATH里加入maven的bin的路径:
DSC0001.png

  配置完成后,在windows命令提示符下,输入mvn -version,如果显示下图则表示安装成功:
DSC0002.png

  在Eclipse 4.0以上版本,继承了Maven的插件,可以在Window -> Preference -> Maven进行一些配置:
DSC0003.png

DSC0004.png


三、常用命令



mvn archetype:create 创建Maven项目
mvn compile 编译源代码
mvn deploy 发布项目
mvn test-compile 编译测试源代码
mvn test 运行应用程序中的单元测试
mvn site 生成项目相关信息的网站
mvn clean 清除项目目录中的生成结果
mvn package 根据项目生成的jar
mvn install 在本地Repository中安装jar
mvn eclipse:eclipse 生成eclipse项目文件
mvn jetty:run 启动jetty服务
mvn tomcat:run 启动tomcat服务
mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳过测试类
四、生命周期
  Maven的生命周期是为了对所有的构建过程进行了抽象,便于统一。

  1、clean 清理项目
  pre-clean 执行清理前的工作
  clean 清理上一次构建生成的所有文件
  post-clean 执行清理后的文件

  2、Default 构建项目
  compile 编译项目中的源代码
  test 使用合适的单元测试框架进行测试,这些测试代码不会被打包或部署
  test-compile 将需要测试的源代码编译到路径,一般是编译src/test/java目录下的java文件至目标输出的测试classpath目录中
  package 接受编译好的代码,打包成可发布的格式,如JAR
  install 将包安装到本地仓库,给其他本地引用提供依赖

  3、site 生成项目站点
  pre-site 在生成项目站点前要完成的工作
  site 生成项目的站点文档
  post-site 在生成项目站点后要完成的工作
  site-deploy 发布生成的站点到服务器上

五、第一个Maven项目
  在Eclipse中新建一个Maven项目:
DSC0005.png

DSC0006.png

  Finish后项目的结果是:
DSC0007.png

  Eclipse构建web项目时,与上面大体相同,需要注意是选择ArcheType的时候选择maven-archetype-webapp。
  pom文件为:


DSC0008.gif DSC0009.gif


<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>
<groupId>com.xj.webdemo</groupId>
<artifactId>webdemo</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>webdemo Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>webdemo</finalName>
<plugins>
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<phase>
package
</phase>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
View Code  然后运行,就可以在浏览器输入localhost:8080,就可以访问了。

六、POM文件
  一个项目所有的配置都放置在pom文件中:定义项目的类型、名字、管理依赖关系,定制插件的行为等等。



<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>com.xj.maven</groupId>
<artifactId>hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>hello</name>
<url>http://maven.apache.org</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
  在pom文件中



 <groupId></groupId>
<artifactId></artifactId>
<version></version>
  叫做坐标,它能唯一的确定一个项目,有了maven坐标,我们就可以用它来指定我们的项目所依赖的其他项目,插件,或者父项目。

七、Maven库
  当第一次运行maven命令时,你需要Internet连接,因为它要从网上下载一些文件,maven默认的远程库是http://repo1.maven.org/maven2,这个远程库有maven的核心插件和可供下载的jar文件。
  但不是所有的jar文件都可以从远程库下载,比如我们自己开发的项目,这个时候可以在内部定制库,也可以手动下载和安装所需的jar文件到本地库。
  本地库是指 maven 下载了插件或者 jar 文件后存放在本地机器上的拷贝。在 Linux 上,它的位置在 ~/.m2/repository,在 Windows XP 上,在 C:\Documents and Settings\username\.m2\repository ,在 Windows 7 上,在 C:\Users\username\.m2\repository。当 maven 查找需要的 jar 文件时,它会先在本地库中寻找,只有在找不到的情况下,才会去远程库中找。
  运行下面的命令能把我们的 helloworld 项目安装到本地库:
  $mvn install

八、参考资料
  1、http://www.oracle.com/technetwork/cn/community/java/apache-maven-getting-started-2-405568-zhs.html
  2、http://mvnrepository.com/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-348367-1-1.html 上篇帖子: 一个故事讲清楚NIO 下篇帖子: SSL + WS-Security = Web Service安全保障
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表