关于Maven

创建一个maven项目
通过命令创建
archetype 原型 骨架 项目结构(空项目) maven创建了很多常用的项目结构 Java项目 web项目 通过命令可以下
载对应的空项目
maven-archetype-quickstart java空项目
maven-archetype-webapp web项目
mvn archetype:generate -DgroupId=组

maven项目规范 项目结构
dangdangmaneger
src/main/java Java源代码
src/main/resources 配置文件
src/main/webapp web相关
src/test/java 测试源代码
src/test/resources 测试相关配置文件
pom.xml maven核心配置文件
targer 源代码输入目录 编译后

 

关于pom的配置:下面这些关于经常使用的jar包,不过像远程连接一般下载都会比较慢,我一般用的都是在setting里面配置阿里私服地址

<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.baizhi</groupId>
<artifactId>cmfzms</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>cmfzms_gaozhy</name>
<description />

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- spring版本号 -->
<spring.version>3.2.4.RELEASE</spring.version>
<!-- mybatis版本号 -->
<mybatis.version>3.2.4</mybatis.version>
<!-- log4j日志文件管理包版本 -->
<slf4j.version>1.6.6</slf4j.version>
<log4j.version>1.2.9</log4j.version>
</properties>

<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<!-- scope=compile 的情况(默认compile),也就是说这个项目在编译、测试,运行阶段都需要这个artifact对应的jar包在classpath中 -->
<!-- scope=provided ,则可以认为这个provided是目标容器已经provided这个artifact,它只影响到编译、测试阶段,运行阶段,假定目标容器已经提供了这个jar包 -->
<scope>provided</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/jstl/jstl -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.4</version>
</dependency>


<!-- 上传组件包 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>

<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>

<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.1.41</version>
</dependency>

<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>jsp-api</artifactId>
<version>6.0.32</version>
<scope>provided</scope>
</dependency>

<!-- spring 核心包 -->
<!-- springframe start -->

<!-- https://mvnrepository.com/artifact/org.aspectj/aspectjweaver -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.7.1</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<!-- springframe end -->

<!-- mybatis核心包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>

<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
</dependency>

<!-- mybatis/spring包 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>

<!-- mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.18</version>
</dependency>

<!-- shiro core -->
<!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-core -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-core</artifactId>
<version>1.3.1</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-web -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-web</artifactId>
<version>1.3.1</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-spring -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.3.1</version>
</dependency>

<!-- https://mvnrepository.com/artifact/org.apache.shiro/shiro-ehcache -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-ehcache</artifactId>
<version>1.2.6</version>
</dependency>

<!-- 数据源包 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.2</version>
</dependency>

<!-- 日志文件管理包 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>

<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- log end -->

<!-- execl操作相关 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.12</version>
</dependency>
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6.12</version>
</dependency>

 

<!-- google验证码 -->
<dependency>
<groupId>com.google.code.kaptcha</groupId>
<artifactId>kaptcha</artifactId>
<version>2.3</version>
</dependency>
</dependencies>

<build>
<!-- 定制打包后的包名 -->
<finalName>cmfzms_gaozhy</finalName>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
<configuration>
<version>3.0</version>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
</project>

maven的优点:

(1).自动管理依赖
依赖dependency 实际上指的jar包
管理jar包 主要是管理jar包关系(互相依赖)
struts-core.jar -----> xwork-core.jar struts-core需要使用 xwork-core中的方法和类
a---->b---->c-----d 需要使用a 必须导入bcd 自己找没法找
(2).减少磁盘空间哦!

jar安装不上怎么办!!!

例:问题

  个别jar包安装不到本地仓库 例如:验证码kaptcha ojdbc等等
解决方法
  手动安装jar包 kaptcha
1. 需要一个jar包 kaptcha-2.3.2.jar 路径是:E:kaptcha-2.3.2.jar
2. 清理本地失效jar包 运行工具
3. 使用命令把jar包安装到本地仓库

命令格式:
mvn install:install-file -Dfile=jar包的路径加文件名 -DgroupId=组织名称 -DartifactId=项
目名(jar包名) -Dversion=版本号 -Dpackaging=jar

关于maven项目调错的通用做法 【主要靠经验】
1. 环境 JDK IDEA maven tomcat 【分开测试】
  1. JDK maven 命令验证
  2. IDEA 没有花里胡哨的插件(特指汉化插件)
  3. tomcat bin文件夹下面startup.bat
2. jar包
  1. 运行删除失效jar包工具 maven batch.bat 【一般情况】
  2. 查看pom文件中版本冲突jar

    1. maven projects中show dependencies 看jar关系视图
    2. 查看是否有jar包版本冲突
  3. 未知错误 少jar包 少方法等
3. 代码错误 【多测试】
  1. dao写完一定要测试
  2. service写完一定要测
  3. 请使用单元测试 Junit

仅供参考谢观阅...

原文地址:https://www.cnblogs.com/490889763-qq/p/10183784.html