一 关于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中子元素的对应关系.
如果无法下载所需插件,或自己下载,或使用本机上有的,然后可以按照这种方式创建一个符合项目要求的插件来供它使用.