`

使用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一下,以学习

相关推荐

    使用Maven建立父子项目

    Maven 是一个强大的 Java 项目管理工具,它通过提供一套标准的项目对象模型(Project Object Model,POM)来简化项目的构建、依赖管理和报告。本篇文章将深入探讨如何使用 Maven 建立父子项目,帮助开发者更高效地...

    使用maven构建springMVC项目

    - **Maven的基本概念**:Maven是一个项目管理工具,用于自动化构建过程,包括编译、测试、打包、部署等阶段。 - **SpringMVC简介**:SpringMVC是Spring框架的一部分,用于构建MVC架构的应用程序。它提供了一种简洁...

    使用Eclipse构建Maven项目

    在IT行业中,构建Java项目时,我们经常使用Maven作为依赖管理和构建工具。Eclipse是一款流行的集成开发环境(IDE),它支持多种插件,其中包括Maven插件,可以帮助开发者便捷地创建、管理和构建Maven项目。这篇博客...

    IntelliJ IDEA上创建Maven Spring MVC项目

    2. **Maven**:Maven是一个项目管理工具,主要用于构建、管理和部署Java项目。它通过依赖管理和项目信息管理,简化了项目的构建过程。Maven使用POM(Project Object Model)来定义项目配置。 3. **Spring MVC**:...

    使用maven管理多模块项目并启动调试-实例代码

    Maven作为Java领域广泛使用的构建工具,以其强大的依赖管理和项目生命周期管理能力,成为多模块项目管理的理想选择。本教程将详细介绍如何使用Maven来管理多模块项目,并指导如何进行项目的启动与调试。 首先,理解...

    使用Eclipse构建Maven的Web项目.docx

    Maven 是一个基于项目对象模型(Project Object Model)的项目管理工具,能够帮助开发者快速构建和管理项目。使用 Eclipse 可以快速建立 Maven 项目。下面是建立 Maven 项目的步骤: 1.1 选择建立 Maven 项目 在 ...

    java后台开发例子–使用Maven建立springmvc的web项目

    在这个例子中,我们将使用Maven作为构建工具来设置一个基本的Spring MVC Web项目。Maven是Apache的一个开源项目,它简化了Java项目的构建、依赖管理和项目信息管理。 首先,我们需要了解如何使用Maven来创建项目。...

    SpringBoot使用Maven建立多模块工程

    首先,我们从【标题】"SpringBoot使用Maven建立多模块工程"出发,了解其核心概念。Maven是一个项目管理和综合工具,它管理项目的构建、报告和文档,通过POM(Project Object Model)文件定义项目的依赖和构建过程。...

    项目管理Maven实战

    通过本文的介绍,我们可以看出Maven不仅仅是一个简单的构建工具,它还是一整套项目管理和理解工具。通过学习Maven的核心概念和高级特性,开发者可以更高效地管理Java项目,提高开发效率和代码质量。《Maven实战》一...

    maven项目构建文档

    **Maven项目构建文档** Maven是一个强大的Java项目管理工具,它可以帮助开发者管理和构建Java项目。...记住,Maven的核心理念是"约定优于配置",所以尽可能遵循其标准约定,可以使项目管理和维护更加简单。

    sypro_maven项目

    Maven作为项目管理工具,负责构建、依赖管理和项目信息管理,使得项目的构建和维护变得更加有序。 首先,Spring框架是核心的依赖注入(DI)和面向切面编程(AOP)框架,它可以管理项目中的对象及其依赖关系,提供...

    hibernate+maven demo项目工程

    **Maven** 是Java项目管理的一个关键工具,它负责自动化构建、依赖管理和项目信息管理。在这个项目中,Maven通过其配置文件pom.xml来管理所有必需的库和插件。开发者无需手动下载和添加依赖,只需在pom.xml中声明所...

    MAVEN+SSH简单项目demo实例

    总结,这个"MAVEN+SSH简单项目demo实例"旨在帮助初学者理解SSH框架的整合以及Maven在项目管理中的作用,通过实际操作,加深对Java Web开发流程的理解。通过学习这个实例,开发者可以掌握如何在现代开发环境中构建、...

    maven详细使用教程

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

    eclipse+egit安装使用+maven安装项目搭建

    Eclipse + EGit + Maven 的集成使用是现代Java开发中常见的工具组合,它们各自负责不同的任务,协同工作以实现高效且版本控制良好的项目管理。以下将详细介绍这些工具的安装和配置。 1一、Maven 安装 Maven 是一个...

Global site tag (gtag.js) - Google Analytics