第一个问题:)
我有一个Grails项目(使用2.5.6版本),而不是像现在这样使用Grails来生成war文件,我需要用Maven来编译这个项目。
我想知道这里是否有人曾经在Grails项目上实现过Maven,并且知道正确添加所有依赖项的步骤是什么。
编辑
我已经创建了pom文件并添加了grails-maven-plugin。但是当我尝试运行mvn grails:run app
时,例如,它无法编译:
|Compiling 174 source files
[groovyc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
[groovyc] Compile error during compilation with javac.
[groovyc] C:...pluginswebflow-2.0.8.1srcgroovyorgcodehausgroovygrailswebflowpersistenceFlowAwareCurrentSessionContext.java:18: error: cannot find symbol
[groovyc] import org.hibernate.classic.Session;
[groovyc] ^
[groovyc] symbol: class Session
[groovyc] location: package org.hibernate.classic
[groovyc] C:...pluginswebflow-2.0.8.1srcgroovyorgcodehausgroovygrailswebflowpersistenceFlowAwareCurrentSessionContext.java:19: error: cannot find symbol
[groovyc] import org.hibernate.engine.SessionFactoryImplementor;
[groovyc] ^
[groovyc] symbol: class SessionFactoryImplementor
[groovyc] location: package org.hibernate.engine
[groovyc] C:...pluginswebflow-2.0.8.1srcgroovyorgcodehausgroovygrailswebflowpersistenceFlowAwareCurrentSessionContext.java:34: error: cannot access CurrentSessionContext
[groovyc] public class FlowAwareCurrentSessionContext extends SpringSessionContext {
[groovyc] ^
[groovyc] class file for org.hibernate.context.CurrentSessionContext not found...
Webflow和Hibernate的依赖关系都在我的pom文件中声明:
<dependency>
<groupId>org.grails.plugins</groupId>
<artifactId>webflow</artifactId>
<version>2.0.8.1</version>
<scope>compile</scope>
<type>zip</type>
</dependency>
<dependency>
<groupId>org.grails.plugins</groupId>
<artifactId>hibernate</artifactId>
<version>2.2.1</version>
<scope>runtime</scope>
<type>zip</type>
</dependency>
PD:我在代理从Nexus下载依赖项。
谢谢!
我们在之前的项目中使用的是grails-maven-plugin,它提供了对grails命令作为maven目标的支持(我们的grails版本是2.3.11,所以我认为它与你的版本兼容)
您可以在项目上生成一个普通的pom.xml文件,保留grails结构,还可以通过maven构建项目。插件应该添加到您的pom文件的<plugins>
部分:
<build>
<plugins>
<plugin>
<groupId>org.grails</groupId>
<artifactId>grails-maven-plugin</artifactId>
<version>2.4.6</version>
<configuration>
<grailsVersion>${grails.version}</grailsVersion>
....
</configuration>
<extensions>true</extensions>
<executions>
<execution>
....
</execution>
</executions>
</plugin>
</plugins>
</build>