`

使用Maven建立我们的项目及简单的项目管理

阅读更多

 

第一步:建立项目

主要工作是选择一个目录,用命令行进入当前目录,想好自己的包名、项目名、项目类型,我们就以建立web项目为例

在命令行下输入:(maven会问你是否确认,输入Y就行)

 

mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=com.mycompany.app -DartifactId=my-app -Dversion=1.0.0
  

 其中DarchetypeArtifactId 参数表示建立项目的类型,不写就是最简单的java项目,还有其他类型。

       DgroupId参数表示包名。

       DartifactId项目名称。

       Dversion项目版本。

DartifactId取值:

* maven-archetype-archetype
* maven-archetype-j2ee-simple
* maven-archetype-mojo
* maven-archetype-portlet
* maven-archetype-profiles (currently under development)
* maven-archetype-quickstart
* maven-archetype-simple (currently under development)
* maven-archetype-site
* maven-archetype-site-simple
* maven-archetype-webapp
 

 

 

这样我们的项目就建立完成了,但是大家进入目录会看到,跟Maven的标准目录结构差距还是很大的,但是这个Maven指令很SB的没给我们把目录建全,我们鄙视它一下,要自己去建立我们需要的目录。

基本上一个Web项目的标准目录如下:

* src/main/java
* src/main/resources
* src/test/java
* src/test/resources
* src/main/webapp
* src/main/config(如果你的properties文件想独立出来)

 目录的建立方式很多,给个命令行的指令,方便一下

mkdir src\main\java\com\mycompany,src\main\config,src\test\java\com\mycompany,src\test\resources

 至此我们用maven建立的项目算是结束了。现在根目录下面有个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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>war</packaging>
  <version>1.0.0</version>
  <name>my-app 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>
  </dependencies>
  <build>
    <finalName>my-app</finalName>
  </build>
</project>

 剩下的工作就是添加maven仓库,添加依赖Jar包,配置各个Maven插件的版本,这点很重要,插件版本如果不配置,很可能造成插件升级后不兼容你当前的项目,下面简单介绍一下。

首先声明一些常量:

	<properties>
		<!-- 主要依赖库的版本定义(这里只是举例最新版自己去仓库找) -->
		<spring.version>3.0.4.RELEASE</spring.version>
		<hibernate.version>3.5.5-Final</hibernate.version>
		<!-- Plugin的属性定义  -->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

 然后声明我们可以去访问的仓库:

	<repositories>
		<repository>
			<id>offical</id>
			<name>Maven Official Repository</name>
			<url>http://repo1.maven.org/maven2</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>

		<repository>
			<id>jboss</id>
			<name>Jboss Repository</name>
			<url>http://repository.jboss.org/nexus/content/groups/public-jboss/</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>

		<repository>
			<id>java.net</id>
			<name>Java.net Repository</name>
			<url>http://download.java.net/maven/2/</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>

 再然后声明依赖的Jar包

	<dependencies>
		<!-- spring begin -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<version>${spring.version}</version>
		</dependency>

		<!-- spring aop -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-aop</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
			<version>${spring.version}</version>
		</dependency>
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjrt</artifactId>
			<version>${aspectj.version}</version>
		</dependency>
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>${aspectj.version}</version>
		</dependency>
		<dependency>
			<groupId>cglib</groupId>
			<artifactId>cglib-nodep</artifactId>
			<version>${cglib.version}</version>
		</dependency>
		<!-- spring end -->

		<!-- database access begin -->
		<!-- hibernate -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
			<version>${hibernate.version}</version>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-annotations</artifactId>
			<version>${hibernate.version}</version>
		</dependency>
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-ehcache</artifactId>
			<version>${hibernate.version}</version>
		</dependency>
		<!-- newest version in jboss repository -->
		<dependency>
			<groupId>javassist</groupId>
			<artifactId>javassist</artifactId>
			<version>${javassist.version}</version>
		</dependency>

		<dependency>
			<groupId>com.oracle</groupId>
			<artifactId>ojdbc14</artifactId>
			<version>${oracle.version}</version>
		</dependency>

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

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

最后设置插件

	<build>
		<finalName>my-webapp</finalName>
		<!-- 编译输出目录 -->
		<outputDirectory>
			${basedir}/src/main/webapp/WEB-INF/classes
		</outputDirectory>
		<plugins>
			<!-- compiler插件, 设定JDK版本 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.3.2</version>
				<configuration>
					<source>1.6</source>
					<target>1.6</target>
					<showWarnings>true</showWarnings>
				</configuration>
			</plugin>

			<!-- test插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.6</version>
				<configuration>
					<skip>true</skip>
					<testFailureIgnore>true</testFailureIgnore>
					<includes>
						<include>**/*Test.java</include>
					</includes>
				</configuration>
			</plugin>

			<!-- cobertura插件 -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>cobertura-maven-plugin</artifactId>
				<version>2.4</version>
			</plugin>

			<!-- war插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<version>2.1</version>
				<configuration>
					<warName>${project.artifactId}</warName>
				</configuration>
			</plugin>

			<!-- resource插件, 设定编码 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<version>2.4.3</version>
				<configuration>
					<encoding>${project.build.sourceEncoding}</encoding>
				</configuration>
			</plugin>

			<!-- jar插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>2.3.1</version>
				<configuration>
					<archive>
						<manifest>
							<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
							<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
						</manifest>
					</archive>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>2.1.2</version>
			</plugin>

			<!-- clean插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-clean-plugin</artifactId>
				<version>2.4.1</version>
			</plugin>

			<!-- install插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-install-plugin</artifactId>
				<version>2.3.1</version>
			</plugin>

			<!-- deploy插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<version>2.5</version>
			</plugin>

			<!-- eclipse插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-eclipse-plugin</artifactId>
				<version>2.5.1</version>
				<configuration>
					<sourceExcludes>
						<sourceExclude>**/.svn/</sourceExclude>
					</sourceExcludes>
					<downloadSources>true</downloadSources>
				</configuration>
			</plugin>

			<!-- 依赖jar包插件 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<version>2.1</version>
				<configuration>
					<outputDirectory>
						${basedir}/src/main/webapp/WEB-INF/lib
					</outputDirectory>
				</configuration>
			</plugin>
		</plugins>
	</build>

 还有一些其他的设置,这里就不讲了,那个更麻烦,我还没研究明白,呵呵。

剩下的工作就简单了,我们的项目架子已经建好,现在就是要把建好的项目在eclipse下进行开发,所以我们也要做最重要的一步:

mvn eclipse:eclipse -DdownloadSources=true -Dwtpversion=2.0

 其中DdownloadSources是是否下载源代码

       Dwtpversion是支持的Web版本

 

完成这个之后我们就可以在eclipse下导入该项目了。

每次要刷新项目的话执行下面的批处理

@echo off
set curdir=%~dp0
set partition=%curdir:~0,1%

echo 工程目录:%curdir%
%partition%:
cd %curdir%

echo 清理工作
call mvn clean eclipse:clean

echo 构建eclipse工程环境,下载JAR源代码,将项目订制为web项目
call mvn eclipse:eclipse -DdownloadSources=true -Dwtpversion=2.0

echo 生成工程依赖JAR包,放到WEB-INF/lib
echo 删除 %curdir%src\main\webapp\WEB-INF\lib\ 下面的jar包
cd %curdir%src\main\webapp\WEB-INF\lib\
del *.jar
cd %curdir%
call mvn dependency:copy-dependencies

echo MAVEN工程构建完成
pause
分享到:
评论
1 楼 bevis.cn 2012-11-09  
mark一下,以学习

相关推荐

    使用Eclipse构建Maven的SpringMVC项目

    而 Maven 是一个基于项目对象模型(POM)的项目管理工具,能够简化项目的构建、测试和发布过程。SpringMVC 是一个基于 Java 的 web 应用程序框架,提供了许多功能强大且灵活的特性。 使用 Eclipse 构建 Maven 的 ...

    maven详细使用教程

    maven是一个跨平台的项目管理工具,主要用于基于java平台的项目构建,依赖管理。maven的主要作用是解决项目中存在的问题,如多个项目之间的依赖关系、测试方法的执行和仓库的管理等。 maven的安装与配置 maven的...

    Intellij IDEA下建立maven管理的web项目,配置jetty热部署

    Maven 是一个基于项目对象模型(Project Object Model,POM)的项目管理工具,由 Apache 软件基金会开发。Intellij IDEA 提供了非常方便的 Maven 项目创建和管理功能。 知识点 2:Maven 的项目结构 在 Intellij ...

    使用Maven管理进行多模块开发案例

    Maven项目管理工具,可以将一个完整的项目拆成一个一个模块进行开发,而一些比较通用的模块就可以作为公用组件。在其他项目中直接依赖使用,比如:公用的方法,权限组件等等。 一,新建一个简单的Maven工程,这个...

    由Git版本控制maven管理的简单web工程搭建

    在IDEA中逐步建立web工程的过程,该过程由git控制版本,maven进行依赖管理.

    maven 项目管理

    建立支持Maven2的开发框架,框架中结合了一些项目功能和工具类,并且此框架本身是一个eclipse工程,支持使用eclipse IDE的开发,并通过CVS可进行团队协作。 2.在Maven2的pom.xml中制定开发框架的依赖包,并建立...

    Maven2 的新特性.7z

    • 项目管理: Maven 让事情变得简单 作者简介 胡键,西安交通大学硕士,2000年毕业后一直从事软件开发。2002年开始使用Java,在平时的项目开发中经常采用OpenSource的工具,如Ant、Maven、Hibernate、Struts...

    个人Maven学习笔记

    Maven是项目管理和综合工具。Maven提供了开发人员构建项目的一个完整的生命周期框架。开发团队可以自动完成项目的基础工具建设,Maven使用标准的目录结构和默认生命周期。 在多个开发团队环境时,Maven可以设置按标准...

    Maven实战 高清版

    Maven——这一Java社区事实标准的项目管理工具,能帮你从琐碎的手工劳动中解脱出来,帮你规范整个组织的构建系统。不仅如此,它还有依赖管理、自动生成项目站点等超酷的特性,已经有无数的开源项目使用它来构建项目...

    apache-maven-3.3.9.zip

    Apache Maven是一个软件项目管理和综合工具。基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报告和文件。 Maven是一个项目管理和综合工具。Maven提供了开发人员构建一个完整的生命周期...

    Maven实战.pdf

    系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有...

    使用springcloud+mybatis+mysql构建的分布式员工信息管理,单表的.开发工具使用maven

    1.1.Maven新建父项目,在pom.xml加入mysql的依赖 1.2.新建公共模块(实体类)使用工具生成 1.3.建立中央注册服务器EurekaServer 1.4.建立Dao服务器模块EurekaClient,引入MyBatis的依赖,生成Dao接口和XxxDao.xml,...

    Maven实战 许晓斌 著

    系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有...

    《Maven实战》

    系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有...

    Maven实战 高清版pdf

    系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有...

    maven 教程

    系统性地阐述了使用Nexus建立私服、使用Maven进行测试、使用Hudson进行持续集成、使用Maven构建Web应用、Maven的版本管理、Maven的灵活构建、生成项目站点和Maven的m2eclipse插件等实用性较强的高级知识,读者可有...

    Maven配置文档

    Maven进行测试、使用Hudson进行持续集成、使用 Maven构建 Web应用、Maven的版本管理、Maven的灵活构 建、生成项目站点和 Maven的 m2eclipse插件等实用性较强的高级知识,读者可有选择性的阅读;扩展性地讲解 了如何 ...

    apache-maven-3.6.3-src.zip

    Apache Maven 3.6.3 ...根据项目对象模型的概念:建立,依赖管理,文档制作,现场发布和分发出版物都是从控制 的pom.xml的声明文件。插件可以扩展Maven, 以利用许多其他开发工具来报告或构建过程。

    基于maven技术旅游项目开发.zip

    系统分析人员使用科学的分析工具和方法,对系统的目的、功能、环境、费用、效益等进行充分的调查研究,并收集、分析和处理有关的资料和数据,据此建立若干替代方案和必要的模型,进行仿真试验;把试验、分析、计算的...

Global site tag (gtag.js) - Google Analytics