专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 项目管理

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

发布时间:2011-06-18 09:41:34 文章来源:www.iduyao.cn 采编人员:星星草
使用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
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: