Grails工程与maven集成
Grails其实也有自己的一些项目管理命令,如:grails packageQgrails test-appQgrails war{。但是公司现在基本上都是用maven来管理项目,所以从理上进行统一的目的,我们也让grails工程由maven来管理?/span>
Grails与maven集成是靠maven插g机制?/span>
接下来描qC集成的步骤:
1?/span>?home/.m2/settings.xml中配|plugin group
<settings>
…
<pluginGroups>
<pluginGroup>org.grails</pluginGroup>
</pluginGroups>
</settings>
没有配置之前Q要q行grailsQhelp命o要这样写Qmvn org.grails:helpQ有了配|之后我们就可以q么写:mvn grails:help?/span>
2、我们创Z个maven理的grails工程
Mvn org.apache.maven.plugins:maven-archetype-plugin:2.0-alpha-4:generate
-DarchetypeGroupId=org.grails
-DarchetypeArtifactId=grails-maven-archetype
-DarchetypeVersion=1.2.0
-DgroupId=example -DartifactId=my-app
grails-maven-archetypeq里用的?.2.0版本Q好像maven3集成的版本比q个要新?/span>
3、进入my-app当前目录Q运行mvn initialize
在运行过E中可能会出现如下问题:
Resolving plugin JAR dependencies …
:: problems summary ::
:::: WARNINGS
module not found: org.hibernate#hibernate-core;3.3.1.GA
那么你在application.properties文g中添加plugins.hibernate=1.3.2
plugins.tomcat=1.3.2两个插g。最后运行mvn compile重新~译工程?/span>
4、我们是用springsource tool suite开发,导入工程。项目中需要对excel操作Q我们采用jxl.jar开源包。在pom文g中配|如下内容:
<dependency>
<groupId>jxl</groupId>
<artifactId>jxl</artifactId>
<version>2.4.2</version>
</dependency>
重新~译下工E,但是引用jxl包中cȝ文gq是报错Q说找不到类。这怎么回事呢?我也很纳P一般maven工程都是q样可以?/span>
后来在官Ҏ档上看到一句话Qpom=true。只要把q句话加到conf/BuildConfig.groovy文g中的grails.project.dependency.resolutionҎ中。如图:
重新~译Q但是还是报错。Ideq是无法引用jxl包中的类。后来发现在grails tools中找C一个命令?/span>
执行q后Q已l加入到了grails dependencies中?/span>
Z么会q样呢,是因为有两套机制造成的?/span>
W一套机Ӟmaven自n理目的机制?/span>
W二套机Ӟgrails也有自己的一套管理机制?/span>
l 在绝大多数情况下maven通过grails的集成插件可以对工程q行打包Q部|Ԍq行试{管理?/span>
l Grails可以通过自己的grails war{命令进行打包,部vQ运行测试等理?/span>
l Grails也可以通过配置pom=true让grails那套理机制用pom中的配置Q不使用自己的管理机制。此时你׃用在conf/BuildConfig.groovy中管理依赖和资源库等配置?/span>