Maven的介绍与使用

    科技2025-04-11  10

    文章目录

    为什么要学习MavenMaven环境配置idea配置maven客户端创建maven工程src目录Maven配置文件解读(pom.xml)maven常用命令 web工程骨架错误修改web工程运行ssm整合pom.xml

    为什么要学习Maven

    项目架构管理工具。javaweb开发中,需要手动导入大量的jar包。Maven可以帮我们自动导入和配置jar包。核心思想:约定大于配置。Maven会规定好你如何去编写java代码。

    Maven环境配置

    测试是否安装成功: 阿里云镜像配置(setting.xml)作用:加速下载 Settings.xml配置:建立一个本地仓库

    idea配置maven客户端

    Setting及Other settings-defaultsetting均需配置

    创建maven工程

    src目录

    src/main/java:源代码目录Src/main/resources:资源文件目录Src/test/java:测试用例目录Src/test/resources:测试用例资源文件目录

    Maven配置文件解读(pom.xml)

    项目坐标 修改maven依赖jdk版本 scope定义jar包使用阶段

    test:该依赖仅仅参与测试相关的内容,包括测试用例的编译和执行,比如定性的Junit。compile:默认scope为compile,表示为当前依赖参与项目的编译、测试和运行阶段,属于强依赖。打包之时,会打到包里去。runtime:依赖仅参与运行周期中的使用,编译不参与。一般这种类库都是接口与实现相分离的类库,比如JDBC类库,在编译之时仅依赖相关的接口,在具体的运行之时,才需要具体的mysql、oracle等等数据的驱动程序。 此类的驱动都是为runtime的类库。provided:该依赖在打包过程中,不需要打进去,这个由运行的环境来提供,比如servlet、tomcat或者基础类库等等,事实上,该依赖可以参与编译、测试和运行等周期,与compile等同。区别在于打包阶段进行了exclude操作。 依赖包版本统一管理 排除依赖项 打包时的资源配置 为避免mybatis使用时,映射文件丢失的问题,必须使用该配置:

    maven常用命令

    clean:清理target目录;

    compile:编译命令;

    test:执行测试命令;

    package:打包命令;一般打包的时候都跳过测试;

    install:安装命令:把打包的jar或war上传到本地仓库

    deploy:部署命令:把打包的jar或war上传到本地仓库,并上传到远程仓库(私服)

    web工程骨架错误修改

    maven生成的web项目web.xml格式有误,需手动替换掉。src/main目录下手工创建java,resources目录,并指定为SourceRoot,ResourceRoot;src目录下手工创建test,test目录下创建java目录,并指定test目录为test Source Root;

    web工程运行

    本地配置tomcat运行。插件运行。Maven插件内嵌应用服务器:tomcat7,jetty 远程tomcat运行 要求远程服务器的tomcat下的webapps目录下有manager,host-manager项目,并tomcat处于运行状态;配置用户名密码,角色: 位置:Tomcat>>conf>>tomcat-users.xml <role rolename="admin-gui"/> <role rolename="admin-script"/> <role rolename="manager-gui"/> <role rolename="manager-script"/> <role rolename="manager-jmx"/> <role rolename="manager-status"/> <user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-script,admin-gui"/> 位置:Pom.xml <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> <version>2.2</version> <configuration> <url>http://localhost:8080/manager/text</url><!-- tomcat7部署管理路径 --> <username>admin</username><!-- tomcat的管理员账号 --> <password>admin</password> <port>8080</port> <path>/1128ssm2</path><!-- 部署路径 --> <charset>UTF-8</charset> <!-- 运行redeploy命令前,要能正常访问http://localhost:8080/manager--> </configuration> </plugin>

    ssm整合pom.xml

    <?xml version="1.0" encoding="UTF-8"?> <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.javasm</groupId> <artifactId>0812maven</artifactId> <version>1.0-SNAPSHOT</version> <packaging>war</packaging> <!--全局属性配置--> <properties> <!--为maven-resources-plugin插件做配置,对resources目录下资源识别插件,对配置文件中的中文信息支持。--> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <!--为maven-compiler-plugin插件做配置,编译插件,对java源码做编译的插件,指定jdk版本--> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <spring.version>5.2.8.RELEASE</spring.version> <log4j.version>2.12.1</log4j.version> <jjwt.version>0.11.2</jjwt.version> <jaskson.version>2.11.0</jaskson.version> <fileupload.version>1.3.3</fileupload.version> <beanutils.version>1.9.3</beanutils.version> <fastjson.version>1.2.72</fastjson.version> <aspectj.version>1.9.5</aspectj.version> <mysql.connector.version>8.0.16</mysql.connector.version> <mybatis.version>3.5.3</mybatis.version> <mybatis.spring.version>1.3.2</mybatis.spring.version> </properties> <!--依赖项列表--> <dependencies> <!--apache-commons--> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>${fileupload.version}</version> </dependency> <dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>${beanutils.version}</version> </dependency> <!--springMVC--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jaskson.version}</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${fastjson.version}</version> </dependency> <!--aop--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aspects</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId> <version>${aspectj.version}</version> </dependency> <dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>${aspectj.version}</version> </dependency> <dependency> <groupId>aopalliance</groupId> <artifactId>aopalliance</artifactId> <version>1.0</version> </dependency> <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>3.3.0</version> </dependency> <!--dataSource--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>${mysql.connector.version}</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.1.22</version> </dependency> <!--mybatis--> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>${mybatis.version}</version> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis-spring</artifactId> <version>${mybatis.spring.version}</version> </dependency> <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.1.10</version> </dependency> <!--事务管理--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>${spring.version}</version> </dependency> <!--redis--> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.2.0</version> </dependency> <!--log4j--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-web</artifactId> <version>${log4j.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>${log4j.version}</version> <scope>compile</scope> </dependency> <!--token--> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.1</version> </dependency> <!--servlet--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <!--依赖项的作用域:test,compile,provided--> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>${spring.version}</version> <scope>test</scope> </dependency> </dependencies> <build> <!--打war包名称:0812ssm.war--> <finalName>0812ssm</finalName> <!--逆向工程--> <plugins> <plugin> <groupId>org.mybatis.generator</groupId> <artifactId>mybatis-generator-maven-plugin</artifactId> <version>1.3.2</version> <dependencies> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.34</version> </dependency> </dependencies> <configuration> <overwrite>true</overwrite> <configurationFile>src/main/resources/generator.xml</configurationFile> </configuration> </plugin> </plugins> <!--对maven-resources-plugin插件做配置--> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*</include> </includes> </resource> </resources> </build> </project>
    Processed: 0.013, SQL: 8