【问题标题】:how to delete guilty jar file after grails dependency-reportgrails依赖报告后如何删除有罪的jar文件
【发布时间】:2011-11-16 00:24:31
【问题描述】:

当我尝试运行 grails -Dgrails.env=local run-app 时,出现以下错误

服务器无法启动:java.lang.LinkageError:加载程序约束违规:加载程序(的实例)先前为名为“javax/management/MBeanServer”的不同类型启动加载

分析后我明白这与“两个依赖项链接同一个jar不同版本”有关

我跑了grails dependency-report,这是观察结果:

commons-beanutils by commons-beanutils 1.8.3 release default false 227 kB
commons-beanutils by commons-beanutils 1.8.0 release default true 0 kB(evicted by 1.8.3)

如何排除这个 jar 或删除链接?

【问题讨论】:

    标签: grails jboss


    【解决方案1】:

    依赖关系报告应该显示有问题的 jar 中的内容。一旦你有了它,从你的 BuildConfig.groovy 中的依赖项中明确排除它,如下所示:

    grails.project.dependency.resolution = {
        dependencies {
            runtime("i-depend-on-beanutils-1.8.3") {
                excludes "beanutils"
            }
        }
    }
    

    【讨论】:

    • 这里是依赖报告输出:org.apache.shiro shiro-core 1.1.0 默认,编译,运行时,master 1.8.3 org.grails.internal wizard 0.1 默认,编译 1.8.0
    • 那么我如何在此处包含 1.8.3 作为运行时 ('org.apache.shiro:shiro-core:1.8.3') { excludes('commons-beanutils') },它不起作用
    • shiro版本号应该是1.1.0,比如runtime ('org.apache.shiro:shiro-core:1.1.0') { excludes('commons-beanutils') }
    • 仍然没有运气 :-( ,以确认我在这里包含的内容,它的组织,名称和运行时的修订版以及排除我包含的工件
    • 好的,我认为如果插件包含依赖项,您必须在plugins而不是dependencies中配置它。尝试用 plugins 替换封闭的 dependencies 闭包,例如 grails.project.dependency.resolution = { plugins { runtime(...`
    猜你喜欢
    • 2013-07-26
    • 1970-01-01
    • 2014-04-25
    • 2015-09-29
    • 1970-01-01
    • 2019-10-06
    • 2016-03-13
    • 2019-09-25
    • 1970-01-01
    相关资源
    最近更新 更多