使用Maven构造Turbine项目

| No Comments | No TrackBacks

一 关于Maven

    它是一个命令行构建工具.本身配置比较简单.主要是几个环境变量的设置.

 

 

 

${Maven.home}/bin/下有个批处理文件maven.bat,其中:

 

 

 

@REM ----------------------------------------------------------------------------

 

 

 

@REM JAVA_HOME - 一个JDK的主目录.

 

 

 

@REM MAVEN_HOME - Maven安装主目录位置.

 

 

 

@REM 可选的环境变量

 

 

 

@REM MAVEN_HOME_LOCAL - 覆盖Maven工作所产生的文件的缺省路径

 

 

 

@REM MAVEN_BATCH_ECHO - 设为'on'使能批处理命令的反馈

 

 

 

@REM MAVEN_BATCH_PAUSE - 设为'on',在结束前等待一个键的按下.

 

 

 

@REM MAVEN_OPTS - Maven运行时要传给Java VM的参数.例如,在调试Maven本身时,使用 set MAVEN_OPTS=-Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000

 

 

 

@REM ----------------------------------------------------------------------------

 

 

 

 

 

 

这个批提供了调用外部文件的设置:

 

 

 

if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"

 

 

 

if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"

 

 

 

为了修改一些配置和加入我们自己的配置项,我们使用mavenrc_pre.bat,其内容为:

 

 

 

MAVEN_HOME_LOCAL指向i:/maven_plugin,可以使Maven在构建项目时所下载的插件放在这个目录中,而不是缺省的%HOME%\.maven中了.

 

 

 

set MAVEN_HOME_LOCAL=i:/maven_plugin

 

 

 

set MAVEN_BATCH_ECHO=off

 

 

 

set MAVEN_BATCH_PAUSE=off

 

 

 

由于%HOME%是用户的主目录,不想把这两个批处理那里,而想和Maven放在一起,则修改上面%HOME%为"%MAVEN_HOME%:

 

 

 

if exist "%MAVEN_HOME%\mavenrc_pre.bat" call "%MAVEN_HOME%\mavenrc_pre.bat"

 

 

 

if exist "%MAVEN_HOME%\mavenrc_post.bat" call "%MAVEN_HOME%\mavenrc_post.bat"

 

 

 

此外,MAVEN_HOME_LOCAL还有其它的修改方式,那就是在build.properties中指定,其中的有关项为:

 

 

 

maven.home.local Maven用于写一些用户相关的细节所到的本机目录,例如,未打包的插件和缓存数据,缺省为${user.home}/.maven

 

 

 

maven.plugin.dir Maven能找到它自己的插件的地方,缺省为${maven.home}/plugins

 

 

 

maven.plugin.user.dir Maven只为特定用户查找的插件位置,缺省为${maven.home.local}/plugins

 

 

 

maven.plugin.unpacked.dir 处理用的为打包插件的位置,缺省为   ${maven.home.local}/cache

 

 

 

maven.repo.local 本机上的repository,Maven用来保存下载的制品,(jars etc),缺省为${maven.home.local}/repository

 

 

 

 

 

 

二 开始用Maven

 

 

 

   1 准备构建配置文件build.properties,其内容为:

 

 

 

   maven.appserver.home =D:/jakarta-tomcat-5.5.6

 

 

 

   turbine.app.name=your appname

#如果不想生成演示页面,则设为false

turbine.app.setup.demo=true

 

 

 

   2 运行maven turbine:setup,生成项目.也可以带有参数,

 

 

 

   maven -Dturbine.app.name=helloworld -Dmaven.appserver.home=D:/jakarta-tomcat-5.5.6 turbine:setup

 

 

 

   如果命令行中有这两个参数,则不需要第一步的工作,因为对于maven来说,这两个参数是必须要有的!

 

 

 

   其中:maven.appserver.home用于在发布应用时,把打包的部署文件发布到该项指定的目录中的容器环境.

 

 

 

   turbine.app.name则是你的项目名称.

 

 

 

   在运行了这个命令后,当前目录下会产生以你指定的your appname为名字的目录,在进入这个目录后,我们可以进行第三步了.

 

 

 

   3 运行maven turbine:deploy.

 

 

 

   它根据2步中生成的setup.properties,project.properties,project.xml来生成可供发布的制品.项目中使用到的库,都定义在project.xml,可以根据自己的项目需要裁剪这个文件. 经过裁剪后,运行这个任务产生发布.

 

 

 

   为了解决执行过程中出现的问题,先看看project.xml中的主要项:   

 

 

 

   <dependency>

 

 

 

      <groupId>turbine</groupId>

 

 

 

      <artifactId>turbine</artifactId>

 

 

 

      <version>2.3.1</version>

 

 

 

      <type>jar</type>

 

 

 

      <properties>

 

 

 

        <war.bundle>true</war.bundle>

 

 

 

      </properties>

 

 

 

   </dependency>

 

 

 

   dependency元素定义了项目中依赖的库,该库位于${maven.home.local}/repository:

 

 

 

   <groupId>\jars\<artifactId>-<version>.<type>

 

 

 

         turbine\jars\  turbine   -2.3.1    .jar

 

 

 

   上面展示了插件文件和元素dependency中子元素的对应关系.

 

 

 

 

 

 

  如果无法下载所需插件,或自己下载,或使用本机上有的,然后可以按照这种方式创建一个符合项目要求的插件来供它使用.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

No TrackBacks

TrackBack URL: http://www.wujianrong.com/mt-tb.cgi/861

Leave a comment

About this Entry

This page contains a single entry by kevinwu published on July 14, 2006 1:57 PM.

用Maven进行项目管理 was the previous entry in this blog.

北京达内培训中心一学员的学习精华记(转帖) is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.