0

这里的第一个问题:)

我有一个 Grails 项目(使用 2.5.6 版),而不是像现在这样使用 grails 生成 war 文件,我需要使用 Maven 编译该项目。

我想知道这里是否有人曾经在 Grails 项目中实现过 Maven,并且知道正确添加所有依赖项的步骤。

编辑

我已经创建了 pom 文件并添加了grails-maven-pluginmvn grails:run app但是,例如,当我尝试运行时,它无法编译:


    |Compiling 174 source files
      [groovyc] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
      [groovyc] Compile error during compilation with javac.
      [groovyc] C:\...\plugins\webflow-2.0.8.1\src\groovy\org\codehaus\groovy\grails\webflow\persistence\FlowAwareCurrentSessionContext.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:\...\plugins\webflow-2.0.8.1\src\groovy\org\codehaus\groovy\grails\webflow\persistence\FlowAwareCurrentSessionContext.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:\...\plugins\webflow-2.0.8.1\src\groovy\org\codehaus\groovy\grails\webflow\persistence\FlowAwareCurrentSessionContext.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 下载依赖项的代理。

谢谢!

4

1 回答 1

0

我们在之前的项目中使用的是grails-maven-plugin,它支持 grails 命令作为 maven 目标(我们的 grails 版本是 2.3.11,所以我认为它与您的兼容)

你可以在你的项目上生成一个普通的 pom.xml 文件,保持 grails 结构,也可以通过 maven 构建你的项目。该插件应添加到<plugins>您的 pom 文件的部分中:

<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>
于 2021-07-31T13:35:17.560 回答