当前位置: 首页 > 知识库问答 >
问题:

多圣杯插件和类路径

郭辉
2023-03-14

我正在尝试启动一个由多个插件组成的Grails应用程序,每个插件都存储为一个单独的Maven模块。依赖关系在构建配置文件中指定。在启动存储在其他插件中的应用类(Java 和 Groovy)时,不会加载这些类。我已经检查了类路径,似乎它不包括由其他插件生成的类。

BuildConfig.groovy中的依赖关系如下所示:


    grails.project.class.dir = "target/classes"
    grails.project.test.class.dir = "target/test-classes"
    grails.project.test.reports.dir = "target/test-reports"

    grails.plugin.location.'plugin-one' = "${basedir}/../plugin-one"
    grails.plugin.location.'plugin-two' = "${basedir}/../plugin-two"

    grails.project.dependency.resolution = {
        inherits("global") {
            excludes 'commons-logging', 'commons-collections'
        }
        log "warn"
        repositories {
            inherit false
            mavenRepo "http://my.maven.repo"
        }
        plugins {
            runtime ':tomcat:1.3.7'
            runtime ':hibernate:1.3.7'
            ...
        }
        dependencies {
            compile "org.apache.httpcomponents:httpclient:4.2.1"
            compile "org.apache.httpcomponents:httpmime:4.2.1"
            compile "commons-collections:commons-collections:3.2.1"

            build "org.apache.httpcomponents:httpclient:4.2.1"
            build "org.apache.httpcomponents:httpmime:4.2.1"
            build "commons-collections:commons-collections:3.2.1"
            ...
        }
    }

    gwt.version = "2.3.0"

Maven模块的结构如下:


    /pom.xml
    /my-app/pom.xml
    /plugin-one/pom.xml
    /plugin-two/pom.xml
    ...

共有1个答案

董法
2023-03-14

grails应用程序不会将其类路径扩展到插件目录。相反,所有编译的类都被复制到应用程序基目录包含的< code > target/plugin-classes 目录中。

上一篇文章中描述的问题是由于缺少Grails插件的描述符而导致Grails不想将插件资源复制到应用程序类路径。特别是plugin.xml文件。不幸的是,Grails留档对此保持沉默。但是,您可以通过在插件的基本目录中调用grails Package-plugin命令为所有插件生成plugin.xml文件。如果您不希望Grails静默失败,请记住在插件配置发生重大更改后重新生成插件描述符。

 类似资料:
  • 此处的示例项目:https://github.com/Trebla7th/grails4-plugin-test 考虑将一些应用程序和插件升级到grails 4。从一个全新的项目开始,只是为了感受一下,使用“开箱即用”的grails插件无法编译。 渐变 5.1.1 试图编译gives 运行“gradle dependencies - stacktrace”会得到以下结果 这个项目是使用“创建插件”

  • 我的问题和这个类似 如何通过Spring安全登录页面传递附加参数 虽然它适用于Grails Spring Security插件。如果我必须支持登录名(公司名称)中的附加字段,我如何在Grails中执行? 我将从URL获取公司名称字段。 比如说。/登录?companyname=c1 /login?公司名称=c2 不同公司的不同用户可以使用相同的用户名。所以用户名不是唯一的,但用户名公司名称是唯一的。

  • 本文向大家介绍CSS 使用Flexbox的圣杯布局,包括了CSS 使用Flexbox的圣杯布局的使用技巧和注意事项,需要的朋友参考一下 示例 Holy Grail布局是具有固定高度的页眉和页脚以及中心带有3列的布局。这3列包括一个固定宽度的sidenav,一个流体中心以及一个用于其他内容(例如广告)的列(流体中心在标记中排在最前面)。CSS Flexbox可以通过非常简单的标记来实现此目的: HT

  • 我使用Spring安全核心插件。我想在用户登录后立即将对象放入会话中。到目前为止,我发现插件中有。它有一个称为的方法,它似乎在成功进行身份验证后被调用。所以我决定创建另一个LoginController,它扩展了默认控制器并覆盖了此方法: 但是调试表明这个方法从来没有被调用过。出了什么问题?可能有另一种方法来做我想做的事吗?谢谢大家!

  • 问题内容: 在过去的8个月中,我一直在运行和开发一个分类网站,所有错误均仅归因于以下一个原因:用户如何输入文本… 我的问题是 :是否有一个php类,一个插件,我可以做些什么 在发送$ str到我的SQL之前?? PS。当我开始使用JSON时,我还注意到问题翻了一番,因为我还必须小心在JSON中输出结果。 我遇到的一些问题:多语言字符串(不同的字符集),从Excel工作表中复制粘贴。 注意:我不担心

  • 甚至不知道在这一点上从哪里开始。我已经安装了圣杯 3.2.4 我正在使用智能J IDEA 终极版 2016.1.我可以使用grails-3.2.4创建一个新的圣杯项目,它似乎成功了,圣杯控制台显示创建应用程序是成功的。项目将创建并打开一个 IDEA 窗口,但显示以下消息: 我不知道这个错误来自何处,也不知道如何指定密钥库。如果我进入项目目录(~/myProject)并尝试从命令行运行grails,