《跟我一起做J2EE版Blog–jPress》3(为MyEclipse搭建Maven环境)

    jPress项目准备用marven来构建,正如我所说的那样,这虽然是blog小项目,但是麻雀虽小五脏俱全,从项目的设计到编码到测试都是以科班出身软件工程的步骤来执行,使用2012年最新的框架版本来从头开发,开发过程全程在我的博客直播,今后还会一直为这个小项目不断维护和开发新功能的。
    先来讲讲使用maven的优点,maven是一个java项目管理工具。使用maven后我们不再需要到各大官网下载jar包,不再为jar包之间纠缠不清的依赖关系烦恼,项目发布给其他人修改和交流时也不再需要连同lib文件中几十兆的jar一起打包了。maven为我们自动下载项目中所需要的jar包,并一并下载它们所依赖的jar,将这些jar包的结构用一个pom.xml描述出来,交给别人后,对方利用这个pom.xml文件也可以使用maven迅速,精确地下载到所定义的jar包,完成项目的快速搭建。
    首先到官网下载最新的marven,解压到任意目录,打开myeclipse,windows-preference-myeclipse-marven4myeclipse-installation,点击add,选择刚刚解压路径,为myeclipse添加我们自己的maven环境。
myeclipse,marven
    选择user setting,为marven编辑一下配置文件的路径,选择maven的解压路径中的setting.xml,如图所示。

    上图中,点一下open file,稍微编辑一下配置文件,在setting.xml中作如下修改:
<!--根目录下添加-->
<!--配置一下本地库的目录,marven会将网上的jar包下载到本地库中-->
<localRepository>D:jar/repository</localRepository>


<!--servers标签下添-->
<!--为今后项目能在WEB容器中热部署,添加服务器-->
    <server>
    	<id>tomcat7</id>
    	<username>flyding</username>
    	<password>8215085</password>
    </server>

    重启一下myeclipse,这时就具备构建maven项目的能力了。下面正式搭建jPress项目,新建project,选择marven project,第一步选择一下workspace,此处不表。第二步,选择marven类型,我们选择webapp类型,如图所示。

    第三步,填写group_id和artifact_id,我们可以都填jPress,随意定义好package(一般为com/org.yourname.projectname)点击finish,这时候一个maven构建的web项目就建好了。


    如上图所示,resources是资源文件,可以写java代码,maven dependencies是maven为我们建立的虚拟的依赖jar库,src是其他的一些代码,比如webroot文件夹中的jsp和web.xml等,target中marven将来会将项目打包到这里。这样的项目结构我们一开始不太适应,不要着急,等程序各个环节都打通后我们做一些调整就能跟以前的项目结构差不多,不过现在我们先适应一下maven的结构,并将各个环节打通。
    下面说一说pom.xml文件,这个文件是marven管理jar结构的文件,具体怎么管理我不说了,我将我现在为struts2,hibernate4,spring3项目环境定义的pom.xml文件贴出来,大家可以参考一下,稍微有些英文基础,再模仿模仿练习一下就能理解pom.xml是怎样定义工程中需要应用的jar包的。
<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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>jPress</groupId>
	<artifactId>jPress</artifactId>
	<packaging>war</packaging>
	<version>0.0.1-SNAPSHOT</version>
	<name>jPress Maven Webapp</name>
	<url>http://maven.apache.org</url>
	<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
			</dependency>
			<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>3.1.1.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-core</artifactId>
			<version>2.3.1.2</version>
			<exclusions>
				<exclusion>
					<artifactId>javassist</artifactId>
					<groupId>javassist</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-orm</artifactId>
			<version>3.1.1.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>c3p0</groupId>
			<artifactId>c3p0</artifactId>
			<version>0.9.1.2</version>
		</dependency>
		
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-web</artifactId>
			<version>3.1.1.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.18</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.16</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
			<version>3.1.1.RELEASE</version>
		</dependency>
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>1.6.12</version>
		</dependency>
		<dependency>
			<groupId>org.apache.struts</groupId>
			<artifactId>struts2-spring-plugin</artifactId>
			<version>2.3.1.2</version>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>4.1.1.Final</version>
		</dependency>
	</dependencies>
	<build>
		<finalName>jPress</finalName>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>tomcat-maven-plugin</artifactId><!--tomcat插件 -->
				<version>1.1</version>
				<executions>
					<execution>
						<id>tomcat-deploy</id>
						<phase>deploy</phase>
						<goals>
							<goal>deploy</goal>
						</goals>
					</execution>
				</executions>
                                <!--为tomcat插件定义我们在marven配置文件中设置的服务器id-->
				<configuration>
					<url>http://localhost:8080/manager/html</url>
					<server>tomcat</server>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
    设置好这个pom.xml,右击工程,run->maven->build就可以让maven自动构建项目了,maven会到自己的中央库中将上述的依赖包下载回来,根据网络环境这期间需要一些时间,不过今后再用到这些包时maven就会直接加载本地库了,不再需要下载。build后targe目录中会有打包好的war文件,这样就可以部署到tomcat或者resin中了。
    今天就写到这里,marven我也是刚用不久,具体的一些背景知识如果感兴趣可以自己找找看,其实会用了就好,没必要过多深究。下一章我会来用maven构建SSH,利用myeclipse生成基于annotation的hibernate model,使用spring3集成hibernate4和strtus2,并打通第一个struts的action。

posted on 2012-03-15 16:26  newflypig  阅读(1120)  评论(0编辑  收藏  举报

导航