Eclipse创建maven工程

1、eclipse创建maven jar project步骤:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面是让我们选择骨架要出创建jar还是war工程。
在这里插入图片描述
选择好Java project骨架下一步,maven项目要下载插件,是需要联网的,如果没有联网就复制下老师给的仓库过去。
下面是指定当前工程的坐标及打包方式
在这里插入图片描述

Group id   artifact id version它们组合到一起形成一个坐标
Package是指定包名
groupId:定义当前maven项目名称,为了和互联网上其它项目区别需要使用域名倒序
artifactId:定义当前maven项目的模块名称
version:定义当前项目的当前版本

标准的maven工程目录结构

完整的目录结构如下:
    src/main/java —— 存放项目的.java文件
	src/main/resources —— 存放项目资源文件,如spring, hibernate配置文件
	src/test/java —— 存放所有测试.java文件,如JUnit测试类
	src/test/resources —— 测试资源文件
	Maven dependenties —— maven工程依赖的jar
	src/main    —— web工程存储jsp、js等,相当于WebRoot
	target 	——编译输出目录
	pom.xml   ——每个maven工程都有一个pom.xml

注意:我们使用eclipse来创建maven工程时,它的目录是有问题的,需要手动来补充。
缺少的是resources目录。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:手动添加完resources后,需要指定outer foler
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

Maven的编译插件
构建完工程后可见编译使用的jdk1.5,实际运行是1.7
在这里插入图片描述
可以指定maven编译版本,变回1.7

<build>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<configuration>
				<source>1.7</source>
				<target>1.7</target>
				<encoding>UTF-8</encoding>
			</configuration>
		</plugin>
	</plugins>
</build>

在这里插入图片描述
当我们对pom.xml文件中进行修改后,工程会报错,可以使用maven update来重新提交一次
在这里插入图片描述
成功将编译版本改为1.7
在这里插入图片描述
2、eclipse创建maven war project(SSH)步骤:
在这里插入图片描述
选择骨架:
在这里插入图片描述
在这里插入图片描述

构建的web工程问题
在这里插入图片描述

1.关于src/main/java  src/test/java src/test/resources目录问题
解决方案
	a.首先要先remove
	b.在添加
	c.配置output path
2.关于index.jsp报错问题
	导入jsp与servlet相关的依赖,注意servlet的scope
注意:对于maven的web项目,它的src/main/webapp就相当于是以前webRoot
在pom.xml中引入servlet的坐标依赖,注意scop调为provided:
<dependencies>
<dependencies>
     <!-- servlet jsp -->
  	<dependency>
  		<groupId>javax.servlet</groupId>
  		<artifactId>servlet-api</artifactId>
  		<version>2.5</version>
  		<scope>provided</scope>
  	</dependency>
  	<dependency>
  		<groupId>javax.servlet</groupId>
  		<artifactId>jsp-api</artifactId>
  		<version>2.0</version>
  		<scope>provided</scope>
  	</dependency>
 </dependencies>

修改web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
	id="WebApp_ID" version="2.5">	
</web-app>
构建ssh工程
1.需要在pom.xml文件中导入相关的jar包依赖
2.在src/main/java下创建相关的action  service  dao
3.在src/main/resource下配置相关的struts.xml  applicationContext.xml  hibernate.cfg.xml  xxx.hbm.xml
4.在src/main/webapp下创建jsp页面
5.在web.xml文件中配置

buildpath中将丢失的sourcefolder,remove掉。
在这里插入图片描述
有时候eclipse创建完maven war工程报错Cannot change version of project facet
查看Problems视图,报错:Cannot change version of project facet Dynamic Web Module to 2.5
Maven web工程,创建完成后出现警告是因为servlet依赖选择的是2.5版本,这里也改成2.5,工程update。找到工程目录:
在这里插入图片描述
修改:在这里插入图片描述
在这里插入图片描述
cmd下导入sql脚本
在这里插入图片描述
定义pom.xml:
在pom.xml添加工程依赖:
本工程为ssh整合工程,依赖struts2.3.24、 spring4.2.4、hibernate5.0.7等,如下:


<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>cn.itcast.maven</groupId>
	<artifactId>maven-ssh</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>maven-ssh Maven Webapp</name>
	<url>http://maven.apache.org</url>
	<!-- 属性 -->
	<properties>
		<spring.version>4.2.4.RELEASE</spring.version>
		<hibernate.version>5.0.7.Final</hibernate.version>
		<struts.version>2.3.24</struts.version>
	</properties>
	<dependencyManagement>
		<dependencies>
			<!-- 锁定版本为 -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-context</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-aspects</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-orm</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-web</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.hibernate</groupId>
				<artifactId>hibernate-core</artifactId>
				<version>${hibernate.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.struts</groupId>
				<artifactId>struts2-core</artifactId>
				<version>${struts.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.struts</groupId>
				<artifactId>struts2-spring-plugin</artifactId>
				<version>${struts.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.struts</groupId>
				<artifactId>struts2-json-plugin</artifactId>
				<version>${struts.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<dependencies>
		<!-- spring -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-orm</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
		</dependency>
		<!-- hibernate -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
		</dependency>

		<!-- 数据库驱动 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.6</version>
			<scope>runtime</scope>
		</dependency>
		<!-- c3p0 -->

		<dependency>
			<groupId>c3p0</groupId>
			<artifactId>c3p0</artifactId>
			<version>0.9.1.2</version>
		</dependency>
		<!-- 导入 struts2 -->
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-core</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-spring-plugin</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-json-plugin</artifactId>
		</dependency>

		<!-- servlet jsp -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.0</version>
			<scope>provided</scope>
		</dependency>
		<!-- 日志 -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.2</version>
		</dependency>
		<!-- junit -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.9</version>
			<scope>test</scope>
		</dependency>
		<!-- jstl -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
	</dependencies>
    <build>
		<finalName>maven-ssh</finalName>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

手动配置tomcat的端口:maven tomcat插件配置端口
在这里插入图片描述
断点调试
maven工程断点调试必须采用“Debug As”方式启动,并且需要引入源码才可源码跟踪:
在这里插入图片描述
在这里插入图片描述
引入源码:
在这里插入图片描述
添加,选择本工程:
在这里插入图片描述
在这里插入图片描述
以debug方式运行:
在这里插入图片描述

分模块构建工程

将ssh工程拆分为多个模块开发:dao、service、web
在这里插入图片描述
继承和聚合
何为聚合?
项目开发通常是分组分模块开发,每个模块开发完成需要将模块聚合在一起运行
何为继承?
继承为了消除重复,我们把很多相同的配置提取出来,子模块继承父模块。
3、maven创建父子工程
maven-parent父模块
在这里插入图片描述
这里选择“跳过骨架选择”
在这里插入图片描述
在这里插入图片描述
定义pom.xml
在pom.xml中统一依赖构件的版本、规范编译版本、子模块聚合。

<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>cn.itcast.maven</groupId>
  <artifactId>maven-parent</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>父工程</name>
  
  <!-- 属性 -->
	<properties>
		<spring.version>4.2.4.RELEASE</spring.version>
		<hibernate.version>5.0.7.Final</hibernate.version>
		<struts.version>2.3.24</struts.version>
	</properties>
	<dependencyManagement>
		<dependencies>
			<!-- 统一依赖构件版本 -->
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-context</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-aspects</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.springframework</groupId>
				<artifactId>spring-orm</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-web</artifactId>
				<version>${spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.hibernate</groupId>
				<artifactId>hibernate-core</artifactId>
				<version>${hibernate.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.struts</groupId>
				<artifactId>struts2-core</artifactId>
				<version>${struts.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.struts</groupId>
				<artifactId>struts2-spring-plugin</artifactId>
				<version>${struts.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.struts</groupId>
				<artifactId>struts2-json-plugin</artifactId>
				<version>${struts.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<finalName>maven-ssh</finalName>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

将父工程发布至仓库
执行maven-install将父工程发布到仓库:
在这里插入图片描述
maven -dao子模块
选择maven模块:
在这里插入图片描述
这里指定模块名称,选择“跳过骨架选择”:
在这里插入图片描述
定义pom.xml
dao模块的pom.xml文件中需要继承父模块,添加持久层需要的依赖坐标:

<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>
  <parent>
    <groupId>cn.itcast.maven</groupId>
    <artifactId>maven-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>maven-dao</artifactId>
  <packaging>jar</packaging>
  <dependencies>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aspects</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-orm</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-test</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
		</dependency>
		
		<!-- 数据库驱动 -->

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.6</version>
			<scope>runtime</scope>
		</dependency>
		<!-- c3p0 -->

		<dependency>
			<groupId>c3p0</groupId>
			<artifactId>c3p0</artifactId>
			<version>0.9.1.2</version>
		</dependency>
		<!-- 日志 -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.2</version>
		</dependency>
		<!-- junit -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.9</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
</project>

maven -service子模块
方法同maven-dao模块创建方法,模块名称为maven-service。
定义pom.xml
service模块的pom.xml文件中需要继承父模块,service依赖dao模块:

<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>
  <parent>
    <groupId>cn.itcast.maven</groupId>
    <artifactId>maven-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>maven-service</artifactId>
  <packaging>jar</packaging>
  
  <dependencies>
  		<!-- junit -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.9</version>
			<scope>test</scope>
		</dependency>
		<!-- 依赖dao -->
		<dependency>
			<groupId>cn.itcast.maven</groupId>
			<artifactId>maven-dao</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
	</dependencies>
</project>

ssh-web子模块
方法同maven-dao模块创建方法,模块名称为maven-web。
定义pom.xml
web模块的pom.xml文件中需要继承父模块,web依赖service模块:

<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>
  <parent>
    <groupId>cn.itcast.maven</groupId>
    <artifactId>maven-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>maven-web</artifactId>
  <packaging>war</packaging>
  <name>web工程</name>
  
   <dependencies>
   		<!-- junit -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.9</version>
			<scope>test</scope>
		</dependency>
		
		<!-- 依赖service -->
		<dependency>
			<groupId>cn.itcast.maven</groupId>
			<artifactId>maven-service</artifactId>
			<version>0.0.1-SNAPSHOT</version>
		</dependency>
		
		
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
		</dependency>
		<!-- 导入 struts2 -->
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-core</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-spring-plugin</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-json-plugin</artifactId>
		</dependency>
		
				<!-- servlet jsp -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jsp-api</artifactId>
			<version>2.0</version>
			<scope>provided</scope>
		</dependency>
	**加粗样式**			<!-- jstl -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>jstl</artifactId>
			<version>1.2</version>
		</dependency>
	</dependencies>
</project>

模块聚合
修改父工程的pom.xml,添加:

 <!-- 模块聚合 -->
	<modules>
		<module>maven-dao</module>
		<module>maven-service</module>
		<module>maven-web</module>
	</modules>

父工程执行package命令,在maven-web工程生成一个war包。
编译运行
方法1:运行maven-web工程,执行tomcat:run
方法2:在父工程执行package,生成war包,将war包拷贝到tomcat运行
配置tomcat6插件
在pom.xml中通过配置tomcat6插件,可以灵活设置服务端口及访问路径:

<build>
		<plugins>
			<!-- 配置Tomcat6插件-->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>tomcat-maven-plugin</artifactId>
				<configuration>
					<!-- 指定端口 -->
					<port>8088</port>
					<!-- 指定Context Path
					如果不指定则Context Path为build标签中finalName指定的名称,若没指定,则为artifactId的值
					-->
					<path>/ssh</path>
					<!-- URL按UTF-8进行编码 -->
                    <uriEncoding>UTF-8</uriEncoding>			
				</configuration>
			</plugin>
		</plugins>
	</build>

执行如下命令:
mvn tomcat:run

访问:http://localhost:8088/ssh
配置tomcat7插件
通过配置tomcat插件灵活设置服务端口及访问路径:

<!-- 配置Tomcat7插件 -->
<plugin>
	<groupId>org.apache.tomcat.maven</groupId>
	<artifactId>tomcat7-maven-plugin</artifactId>
	<configuration>
		<!-- 指定端口 -->
		<port>8081</port>
		<!-- 请求路径 -->
		<path>/</path>
	</configuration>
</plugin>

执行命令:
mvn tomcat7:run

访问:http://localhost:8081/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值