Maven

定义:apache下的一个开源项目,是纯java开发,并且只是用来管理java项目

特点

①依赖管理

②项目一键构建:将项目构建的过程进行标准化,每个阶段用一个命令完成,

清理阶段对应的maven的命令是clean,清理输出的class文件

编译阶段对应的maven的命令是compile,将java文件编译成class文件

打包阶段对应的maven命令是package,将java工程打成jar包,web工程可以打成war包

运行一个maven工程需要的命令是:tomcat:run

③maven的跨平台,可在window、linux上使用

④maven遵循规范开发有利于提高大型团队的开发效率。

Maven的安装配置

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

直接解压到一个没有中文没有空格的文件夹里解压后的目录如下

Maven的核心配置文件( conf下)

Maven环境变量的配置

  • 要配置jdk,如果maven3.3.9这个版本所需的jdk版本必须要1.7以上
  • 最终要运行的是maven软件中bin目录的mvn命令

环境变量的名称:MAVEN_HOME

变量值:就是maven软甲解压的目录F:\class32\apache-maven-3.3.9

  • 把MAVEN_HOME添加到path里

  • 验证maven是否配置成功

打开dos窗口,输入命令: mvn -v

Maven仓库

三种仓库

1)本地仓库用来存储远程仓库或中央仓库下载的插件和jar包。自己维护(conf/settings.xml文件中)

2)远程仓库(私服)公司维护,可以在互联网,也可以在局域网

3)中央仓库 maven软件中内置一个远程仓库 http://repo1.maven.org/maven2

配置本地仓库

将制定的路径加到MAVEN_HOME/conf/settings.xml配置文件中本地仓库配置处即可

Maven项目工程目录约定

常用命令

1)运行web项目

进入maven工程目录(当前目录含有pom.xml)

mvn tomcat:run

2)清理编译文件,删除target目录的内容

mvn clean

3)编译主目录文件

mvn compile

4)编译并运行test目录下的单元测试类

mvn test

5)打包命令

mvn package

6)安装命令,执行install将maven打成jar包或war包发布到本地仓库中

mvn install

Maven生命周期

Compile   test  package  install  deploy(发布到私服)

三种生命周期

Clean生命周期

    Clean

Default生命周期

    Compile   test  package  install deploy

Site生命周期

    Site

命令和生命周期的阶段关系

不同的生命周期的命令可以同时执行

mvn clean package

项目构建

  •     选择3.3.9版本的maven软件

  • 修改默认的本地仓库地址

项目构建

  • 新建maven项目

  • 调过骨架,如果不跳过骨架选择创建出的项目目录是不全的,IDEA和这里是相反的

  • 填写坐标

  • 处理红色叉号

右击项目→JavaEE Toolyou→gen...有一个自动生成web.xml文件的选项。

  • 处理编译版本
    <build>
		<!-- 配置了很多插件 -->
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.5.1</version>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>
		</plugins>
	</build>

注:常见的操作

1)重建索引

打开maven的视图

2)添加scope,导入依赖需要指定锁依赖的jar包的作用范围。

  • compile   struts2-core:编译、测试时需要,运行、打包时需要。
  • provided  servlet-api.jar和jsp-api.jar :编译、测试时需要。运行、打包时不需要
  • runtime  数据库驱动包:编译时不需要,其他,测试、运行、打包时需要
  • test  junit.jar:编译时不需要,测试时需要,运行时不需要,打包也不需要

Maven Profile

在我们平常的java开发中,会经常使用到很多配制文件(xxx.properties,xxx.xml),而当我们在本地开发(dev),测试环境测试(test),线上生产使用(product)时,需要不停的去修改这些配制文件,次数一多,相当麻烦。现在,利用maven的filter和profile功能,我们可实现在编译阶段简单的指定一个参数就能切换配制,提高效率,还不容易出错.

profile可以让我们定义一系列的配置信息,然后指定其激活条件。这样我们就可以定义多个profile,然后每个profile对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果

切换端口:

<properties>
	<port>9105</port>
</properties>
<build>
	<plugins>	
	<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
				<version>2.2</version>
				<configuration>
					<!-- 指定端口 -->
					<port>${port}</port>
					<!-- 请求路径 -->
					<path>/</path>
				</configuration>
		</plugin>
	</plugins>
</build>

运行tomcat7:run ,发现运行结果是一样的,因为port是变量,而变量值是定义为9105。

添加如下:

<profiles>
	<profile>
		<id>dev</id>
		<properties>
			<port>9105</port>
		</properties>
	</profile>
	<profile>
		<id>pro</id>
		<properties>
			<port>9205</port>
		</properties>
	</profile>
</profiles>

执行命令 tomcat7:run -P pro  发现以9205端口启动

执行命令 tomcat7:run -P dev  发现以9105端口启动

-P 后边跟的是profile的id

如果我们只执行命令tomcat7:run ,也是以9105启动,因为我们一开始定义的变量值就是9105,就是在不指定profileID时的默认值.

切换数据库连接配置

① src/main/resources下创建filter文件夹

② filter文件夹下创建db_dev.properties

env.jdbc.driver=com.mysql.jdbc.Driver
env.jdbc.url=jdbc:mysql://localhost:3306/demo_dev?characterEncoding=utf-8
env.jdbc.username=root
env.jdbc.password=root

③ filter文件夹下创建db_pro.properties 

env.jdbc.driver=com.mysql.jdbc.Driver
env.jdbc.url=jdbc:mysql://localhost:3306/demo_pro?characterEncoding=utf-8
env.jdbc.username=root
env.jdbc.password=root

④ 修改properties下的db.properties

jdbc.driver=${env.jdbc.driver}
jdbc.url=${env.jdbc.url}
jdbc.username=${env.jdbc.username}
jdbc.password=${env.jdbc.password}

⑤ 定义profile

<properties>
		<env>dev</env>
</properties>
<profiles>
	<profile>
		<id>dev</id>
		<properties>
			<env>dev</env>
		</properties>
	</profile>
	<profile>
		<id>pro</id>
		<properties>
			<env>pro</env>
		</properties>
	</profile>
</profiles>

⑥ 修改pom.xml ,在build节点中添加如下配置,资源过滤与变量替换

这里我们利用filter实现对资源文件(resouces)过滤 
maven filter可利用指定的xxx.properties中对应的key=value对资源文件中的${key}进行替换,最终把你的资源文件中的username=${key}替换成username=value 

    <build>
  		<filters>
  			<filter>src/main/resources/filter/db_${env}.properties</filter>
  		</filters>
  		<resources>
  			<resource>
  				<directory>src/main/resources</directory>
  				<filtering>true</filtering>
  			</resource>
  		</resources>
  	</build>

在dao 工程 执行命令:package -P pro ,  解压生成的jar包,观察db.properties配置文件内容,已经替换为生产环境的值。

注:打包的日志里会有生成路径。

在service工程 执行命令 pageage  ,解压生成的war包里的pinyougou-dao的jar包,发现也是生成环境的值。

测试运行

【1】连接生产数据库

(1)在dao 工程执行命令:install -P pro

(2)在service:执行命令:tomcat7:run

(3)在web :  执行命令:tomcat7:run

【2】连接开发数据库

(1)在dao 工程执行命令:install -P dev  (或 install   )

(2)在service:执行命令:tomcat7:run

(3)在web :  执行命令:tomcat7:run

切换注册中心配置

① 在 common 工程中properties下创建dubbox.properties

address=192.168.25.135:2181

② Spring目录下创建spring配置文件 applicationContext-dubbox.xml 配置如下:

<dubbo:registryprotocol="zookeeper"address="${address}"/>

③ 所有的服务工程与web工程都要依赖 common . 并删除每个工程中关于注册中心地址的配置 

④ 安装 common 到本地仓库,然后测试运行。

⑤ 在 common 工程中创建filters目录 ,目录下建立dubbox_dev.properties

env.address=192.168.25.135:2181

⑥ 建立dubbox_pro.properties

env.address=192.168.25.136:2181

⑦修改dubbox.properties

address=${env.address}

⑧ 修改common的pom.xml

<properties>

         <env>dev</env>   

</properties>

<profiles>

    <profile>

         <id>dev</id>

         <properties>

             <env>dev</env>

         </properties>

    </profile>

    <profile>

         <id>pro</id>

         <properties>

             <env>pro</env>

         </properties>

    </profile>

</profiles>

.............................

<build>

         <filters>

             <filter>src/main/resources/filters/dubbox_${env}.properties</filter>

         </filters>

         <resources>

             <resource>

                  <directory>src/main/resources</directory>

                  <filtering>true</filtering>

             </resource> 

         </resources>

</build>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值