【问题标题】:Multiple Grails plugins and classpath多个 Grails 插件和类路径
【发布时间】:2013-09-23 12:06:51
【问题描述】:

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

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

grails.project.class.dir = "目标/类" grails.project.test.class.dir = "目标/测试类" grails.project.test.reports.dir = "目标/测试报告" grails.plugin.location.'plugin-one' = "${basedir}/../plugin-one" grails.plugin.location.'plugin-two' = "${basedir}/../plugin-two" grails.project.dependency.resolution = { 继承(“全球”){ 不包括 'commons-logging'、'commons-collections' } 记录“警告” 存储库{ 继承假 mavenRepo "http://my.maven.repo" } 插件{ 运行时':tomcat:1.3.7' 运行时':休眠:1.3.7' ... } 依赖{ 编译“org.apache.httpcomponents:httpclient:4.2.1” 编译“org.apache.httpcomponents:httpmime:4.2.1” 编译“commons-collections:commons-collections:3.2.1” 构建“org.apache.httpcomponents:httpclient:4.2.1” 构建“org.apache.httpcomponents:httpmime:4.2.1” 构建“commons-collections:commons-collections:3.2.1” ... } } gwt.version = "2.3.0"

Maven模块结构如下:

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

【问题讨论】:

  • “存储为单独的 Maven 模块” - 你能详细说明一下吗?您开发的应用程序是否也已 mavenized?
  • 你能分享你的 BuildConfig.groovy 吗?
  • @dmahapatro - 我有一个 Maven 模块的扁平结构:my-app、plugin-one、plugin-two 等。虽然我很确定情况并非如此。

标签: grails plugins classpath


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    • 1970-01-01
    • 2012-12-09
    • 2011-11-08
    • 1970-01-01
    • 2020-06-07
    相关资源
    最近更新 更多