zoukankan      html  css  js  c++  java
  • 使用Maven构建JavaEE项目

    学习要点

    • Maven简介
    • Maven构建项目
    • MyEclipse中Maven的使用

    Maven简介

    Maven作用

    • 对第三方依赖库进行统一的版本管理
    • 统一的目录结构,统一各平台各IDE目录
    • 统一的软件构建阶段

    Maven是项目构建工具

    • 定义项目的组成、管理项目依赖和发布

    下载Maven

    • 下载地址:http://maven.apache.org/download.cgi

    安装Maven

    设置系统环境变量

    新增MAVEN_HOME变量,值:D:apache-maven-3.5.2

    PATH添加 %MAVEN_HOME%in;

    验证安装

    使用命令:

    mvn help:system    //推荐设置完成maven的settings.xml文件后再执行
    

      

    或者:

    mvn -v
    

      

    Maven构建项目

    Maven运行环境配置文件settings.xml

    • 定义Maven的全局环境信息

    范围

    • 全局范围:D:apache-maven-3.5.0confsettings.xml
    • 用户范围:C:UsersAdministrator.m2settings.xml
    • 读取配置:全局范围和用户范围的并集。用户优先级高。一般修改用户配置文件。

    仓库

    本地仓库:

    • 使用localRepository元素更改

    远程仓库:

    • 中央仓库:https://repo.maven.apache.org/maven2/
    • 镜像仓库:使用mirrors元素添加
    • 推荐使用阿里云镜像仓库,在用户settings.xml添加以下镜像
    <mirror>
      <!--This sends everything else to /public -->
      <id>nexus</id>
      <mirrorOf>*</mirrorOf> 
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror><mirror>
      <!--This is used to direct the public snapshots repo in the profile below over to a different nexus group -->
      <id>nexus-public-snapshots</id>
      <mirrorOf>public-snapshots</mirrorOf> 
      <url>http://maven.aliyun.com/nexus/content/repositories/snapshots/</url>
    </mirror>
    

       

    JDK版本修改:

    默认为1.4,<profiles>节点中增加以下节点配置

    	<profile>
    		<id>jdk-1.8</id>
    		<activation>
    			<activeByDefault>true</activeByDefault>
    			<jdk>1.8</jdk>
    		</activation>
    		<properties>
    			<maven.compiler.source>1.8</maven.compiler.source>
    			<maven.compiler.target>1.8</maven.compiler.target>
    			<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
    		</properties>
    	</profile>
    

      

    Maven项目配置文件pom.xml

    节点

    含义

    project

    POM文件的顶级元素

    modelVersion

    POM模型版本。描述pom文件所遵循的POM版本。一般填写为4.0.0

    groupId

    项目组织的唯一标识。通常是域名倒写。

    artifactId

    项目唯一标识。对应项目名称。

    version

    artifact的版本。groupId、artifactId、version三者唯唯一确定artifact。

    packaging

    默认值是jar。标识maven会将项目打包成一个jar。

    dependencies

    表示依赖,在子节点dependency中添加具体依赖的项目。

    build

    构建选项

    Maven命令

    • 常用命令

    命令格式

    功能

    mvn archetype:generate

    创建maven项目

    mvn compile

    编译源代码

    mvn test-compile

    编译测试代码

    mvn test

    运行测试

    mvn package

    打包项目

    mvn install

    安装到本地仓库

    • 使用maven命令构建一个控制台项目

    1.创建maven调试临时目录E:TempMaven,在cmd窗口进入该目录

    2.选择创建项目类型(从远程获取或者从本地选择)

    • 远程获取:mvn archetype:generate –x  #-x用于查看调试信息
    • 本地选择:mvn archetype:generate –DarchetypeCatalog=internal

     

    3.本地选择7——quickstart项目类型(控制台)。输入POM项目信息

    4.生成标准maven项目

    5.编译HelloWord项目

        进入HelloWord目录,mvn编译命令需要依赖POM.xml文件。

        编译成功

    6.测试编译完成的HelloWord项目

        输入命令mvn test进行测试,获得测试结果。

        测试结果分析:

    7.打包HelloWord项目

        打包成功,获得项目jar文件

     

    8.运行HelloWord-1.0.jar项目

    • 使用install命令安装java类库到本地仓库

        例如ojdbc6.jar无法在远程仓库获取,需要手动安装到本地仓库。

      1.把odjdbc6.jar从Oracle安装目录拷贝到Temp(便于安装)

      2.输入以下安装命令(需要取消换行)

    mvn install:install-file -Dfile=e:Tempojdbc6.jar -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0 -Dpackaging=jar -DgeneratePom=true

      3.进入本地参查看安装完成情况

    Maven4MyEclipse插件的使用

    • 创建web项目

    创建Maven项目。

    • 添加web项目依赖

    查找依赖官网:http://mvnrepository.com/

    • 项目部署

    部署到tomcat,和非maven项目无差异。

    • junit测试

    Maven项目测试需要修改项目属性。非maven工程的项目编译后的.class文件会在/webapp/WEB-INF/classes目录下;maven工程项目编译后的.class文件应该是在/target目录下,源代码的输出应该是/target/classes目录,而测试代码的输出则应该是/target/test-classes目录。修改如下图所示: 

     

    • 项目打包

    项目run as  à  run Configurations使用内置的maven打包。

    myeclipse 10.6和myeclipse2014 无法与maven 3.5 兼容。

    解决方案:将maven3.5 调低如maven3.2.2 即可。

    Maven标准目录结构

    目录

    说明

    src/main/resources

    资源文件目录。例如application.xml、struts.xml

    src/main/java

    Java源代码目录。

    src/test/java

    测试用例代码目录。

    src/test/resources

    测试用例相关资源目录。

    src/main/webapp

    Web项目根目录。

    target

    编译构建输出目录。



    本博客文章未经许可,禁止转载和商业用途!

    如有疑问,请联系: 2083967667@qq.com


  • 相关阅读:
    leetcode刷题总结401-450
    leetcode刷题总结351-400
    马哥博客作业第六周
    马哥教育第一阶段考试
    马哥博客作业第四周
    马哥博客作业第三周
    马哥博客作业第二周
    马哥博客作业第一周
    马哥博客预习作业第三周
    马哥博客预习作业第二周
  • 原文地址:https://www.cnblogs.com/rask/p/8277952.html
Copyright © 2011-2022 走看看