maveweb配置

web.xml详解
1.在启动Web项目时,容器(比如Tomcat)会读web.xml配置文件中的两个节点<listener>和<contex-param>。
2.接着容器会创建一个ServletContext(上下文),应用范围内即整个WEB项目都能使用这个上下文。
3.接着容器会将读取到<context-param>转化为键值对,并交给ServletContext。
4.容器创建<listener></listener>中的类实例,即创建监听(备注:listener定义的类可以是自定义的类但必须需要继承ServletContextListener)。
5.在监听的类中会有一个contextInitialized(ServletContextEvent event)初始化方法,在这个方法中可以通过event.getServletContext().getInitParameter("contextConfigLocation") 来得到context-param 设定的值。在这个类中还必须有一个contextDestroyed(ServletContextEvent event) 销毁方法.用于关闭应用前释放资源,比如说数据库连接的关闭。
6.得到这个context-param的值之后,你就可以做一些操作了.注意,这个时候你的WEB项目还没有完全启动完成.这个动作会比所有的Servlet都要早。

pom.xml详解
1.
<modelVersion>4.0.0</modelVersion>
当前POM模型的版本,对于maven2及maven3来说,它只能是4.0.0。
2.
<parent>
        项目或者组织的唯一标志,并且配置时生成的路径也是由此生成,如org.codehaus.mojo生成的相对路径为:/org/codehaus/mojo
		<groupId>com.liuli.pro</groupId>
		项目的通用名称
		<artifactId>syspro</artifactId>
		项目的版本
		<version>0.0.1-SNAPSHOT</version>
</parent>
3.当前项目的名称
<artifactId>syspro-web</artifactId>
4.打包的机制,如pom, jar, maven-plugin, ejb, war, ear, rar, par
<packaging>war</packaging>
5.<name>mfts-web Maven Webapp</name>
6.profile可以让我们定义一系列的配置信息,然后指定其激活条件。这样我们就可以定义多个profile,
然后每个profile对应不同的激活条件和配置信息,从而达到不同环境使用不同配置信息的效果。比如说,
我们可以通过profile定义在jdk1.5以上使用一套配置信息,在jdk1.5以下使用另外一套配置信息;
或者有时候我们可以通过操作系统的不同来使用不同的配置信息,比如windows下是一套信息
,linux下又是另外一套信息,等等。具体的激活条件有哪些我在后文会讲到。
<profiles>
		<profile>
			<id>dev</id>
			<properties>
				<target.dist>dev</target.dist>
			</properties>
		</profile>
		<profile>
			<id>test</id>
			<properties>
				<target.dist>test</target.dist>
			</properties>
		</profile>
		<profile>
			<id>product</id>
			<properties>
				<target.dist>product</target.dist>
			</properties>
		</profile>
		<profile>
			<id>learning</id>
			<properties>
				<target.dist>learning</target.dist>
			</properties>
		</profile>
		<profile>
			<id>personal</id>
			<!-- 默认激活开发配制,使用config-learning.properties来替换设置过虑的资源文件中的${key} -->
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<properties>
				<target.dist>personal</target.dist>
			</properties>
		</profile>
	</profiles>
7.jar版本
<properties>
		<slf4j.version>1.6.4</slf4j.version>
</properties>
8.build     创建项目时必须的信息。
<build> build开始
resources: resource的列表,用于包括所有的资源
<resources>
			<resource>
			   资源所在的位置
				<directory>src/main/java</directory>
				样式,包括那些资源
				<includes>
					<include>**/*.xml</include>
				</includes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<includes>
					<include>**/*.*</include>
				</includes>
				排除的资源
				<excludes>
					<exclude>*.sql</exclude>
					<exclude>log4j.xml</exclude>
					<exclude>logback.xml</exclude>
				</excludes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<includes>
					<include>log4j.xml</include>
					<include>logback.xml</include>
					<include>jdbc.properties</include>
					<include>common.properties</include>
				</includes>
				是否替换资源中的属性placehold
				<filtering>true</filtering>
			</resource>
</resources>
9.
<filters>
        定义过滤,用于替换相应的属性文件,使用maven定义的属性。设置所有placehold的值
		<filter>src/main/resources/config/config-${target.dist}.properties</filter>
		</filters>
		生成最后的文件的样式
<finalName>mfts-web-${target.dist}</finalName>
10.plugins
<plugins>
			<plugin>
			    的唯一的标识符
				为了使项目结构更为清晰,Maven区别对待Java代码文件和资源文件,maven-compiler-plugin用来编译Java代码,maven-resources-plugin则用来处理资源文件。
				默认的主资源文件目录是src/main/resources,很多用户会需要添加额外的资源文件目录,这个时候就可以通过配置maven-resources-plugin来实现。
				此外,资源文件过滤也是Maven的一大特性,你可以在资源文件中使用${propertyName}形式的Maven属性,然后配置maven-resources-plugin开启对资源文件的过滤,
				之后就可以针对不同环境通过命令行或者Profile传入属性的值,以实现更为灵活的构建。
				<artifactId>maven-resources-plugin</artifactId>
				<version>2.7</version>
				用于配置execution目标,一个插件可以有多个目标。
				<executions>
					<execution>
						<id>copy-resources</id>
						表示阶段,目标将会在什么阶段执行
						<phase>validate</phase>
						表示目标
						<goals>
							<goal>copy-resources</goal>
						</goals>
						<configuration>
							<outputDirectory>src/main/webapp/WEB-INF/</outputDirectory>
							<resources>
								<resource>
									<directory>src/main/resources/fis/</directory>
									<filtering>true</filtering>
								</resource>
							</resources>
							<filters>
								<filter>src/main/resources/config/config-${target.dist}.properties</filter>
							</filters>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
build完成
</build>

借鉴:

http://www.infoq.com/cn/news/2011/05/xxb-maven-8-plugin/

http://www.cnblogs.com/davidwang456/p/3915031.html

http://blog.csdn.net/eclipser1987/article/details/5755603

http://blog.csdn.net/carolzhang8406/article/details/13622287

发布了38 篇原创文章 · 获赞 0 · 访问量 1万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章