zoukankan      html  css  js  c++  java
  • maven的helloword

    maven的helloword

    最近在学习如何使用maven,做了一个demo(基于S2S整合),总结一下与大家分享,期待与大家讨论以期快速进步。

    一、maven介绍

    1、maven是什么

    http://maven.apache.org/
    官方解释:Maven是一个项目管理工具,它包含了一个项目对象模型 (Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System),和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑。

    2、使用maven有什么好处,解决什么问题

    jar统一管理了:

    如果建立了一个本地的jar仓库,那么所有人都是从仓库里面下载jar,拷贝项目时只需要copy几K的源码即可!其次,依然是仓库,使得每个人的jar版本都是一致的,不会出现因为版本不同,引起的莫名其妙的错误。
    项目的自动化:

    只需要mvn package命令,在eclipse里面,看run里面,只需要选择就行了!它会自动的从编译,测试开始,一直到打包,自动的运行,保证你的包没有问题。

    我们在做多个不同的Java项目时,每个项目所用到的库文件基本都是大同小异的,通常的做法是每个项目下面都会复制一份这些库文件,甚至会把这些库文件都提交到vss上去,这样带来的问题不仅是增大了项目占用的硬盘空间,而且也使包管理很混乱。

    我们可以这样查看jar包的依赖关系,是不是很爽?!
    image

    还可以单元测试覆盖率报表:

    image

    2、helloword

    1、下载Maven 附件中的maven3.jar 解压到任意目录

    2、安装eclipse插件m2eclipse

    方式一:在线安装 更新地址是:http://m2eclipse.sonatype.org/sites/m2e
    方式二:本地安装 help-->install new softeware-->add-->name填写maven-->archive..-->jar:file:/../m2e.zip!/-->ok
    安装完成重启eclipse,在Window-->Preferences-->Maven下配置

    image

    禁用eclipse启动时更新maven index 主要是每次eclipse启动时都更新很烦人

    image

    添加自己的maven

    3、新建maven项目

    按照下图步骤

    image

    • groupId定义了项目属于哪个组,这个组往往和项目所在的组织或公司存在关联。譬如在googlecode上建立了一个名为myapp的项目,那么groupId就应该是com.googlecode.myapp.
    • artifactId定义了当前Maven项目在组中唯一的ID,groupId为com.googlecode.myapp的例子中,你可能会为不同的子项目(模块)分配artifactId,如myapputil、myappdomain、myappweb等。
    • version指定了项目当前的版本——1.0SNAPSHOT。SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。随着项目的发展,version会不断更新,如升级为1.0、1.1SNAPSHOT、1.1、2.0等。
    • name元素声明了一个对于用户更为友好的项目名称

    点击Finish完成

    4、maven项目结构

    下图为基于maven项目结构,这里跟我们以前的项目结构很不一样,以前的项目结构约定俗成的只有两块 一个src 一个webRoot,当然这些都可以随意配置,比如WebRoot有的叫WebContent

    image
    这里maven倡导约定优于配置,maven的约定就是以下目录结构
    src/main/java 下存放java类
    src/main/webapp 下存放页面文件(需要手动创建)
    src/main/resources 下存放资源文件
    src/test/java 下存放单元测试代码
    src/test/resources 下存放测试资源文件

    5、添加jar包

    只需维护pom.xml
    比如添加struts2-core
    <dependency>
    <groupId>org.apache.struts</groupId>
    <artifactId>struts2-core</artifactId>
    <version>2.0.11.2</version>
    </dependency>

    我在172.20.66.230上部署了一个maven仓库,访问地址http://172.20.66.230:8081/nexus/

    maven会根据pom.xml中的配置访问230的仓库下载对应的jar source 以及doc,下载到哪?这要看maven3/conf/settings.xml 55:

    <localRepository>F:/Maven3/repository</localRepository>

    6、编写代码

    附件中有一个struts2+spring 的demo,解压然后import eclipse

    在项目名上右键 run as -->Run Configurations

    image

    按图配置,点击Run即可。浏览器中访问http://localhost:8080/MavenSSH/

    Maven运行的生命周期

    • 复制src/main/resources资源文件到输出目录

    • 编译src/main/java下的源代码

    • 复制src/test/resources下的测试用资源文件到测试输出目录

    • 编译src/test/java下的测试用例

    • 运行测试用例

    • 打包生成

    ===========================

    • 以上是一个简单的例子,只是用它获取依赖的jar包 。maven还有很多诸如项目管理方面的功能,比如文档编制、发布管理、配置管理...

    • 第一个次运行项目会比较慢,因为要下载jar包。

    • MavenSSH.rar是一个struts2与spring集成的例子,页面用到了sitemesh div+css 也值得学习

    • 项目debug是运行在jetty(类似于tomcat的容器)中。

  • 相关阅读:
    Jmeter(四十一)分布式测试(转!)
    Jmeter(四十)BeanShell范例
    Jmeter(三十九)User.Properties定义全局变量
    Jmeter(三十八)Jmeter Question 之 ‘批量执行SQL语句’
    接口测试“八重天”---HttpClient
    常见的性能测试误区
    UI“三重天”之appium(一)
    Jmeter(三十七)源码导入IDE(转!)
    UI“三重天”之selenium--常用API和问题处理(三)
    kotlin 1.3
  • 原文地址:https://www.cnblogs.com/exmyth/p/3025745.html
Copyright © 2011-2022 走看看