【问题标题】:Package project as jar into war project (Gradle)将项目作为 jar 打包到战争项目中(Gradle)
【发布时间】:2014-11-23 04:18:29
【问题描述】:

我有一个由 3 个模块组成的 Gradle 项目:

  • project-core(无依赖关系)
  • project-web(取决于project-core
  • project-plugin(取决于两个模块)

我不想每次做WAR都手动将插件添加到project-web的classpath中,所以我想扩展WAR任务并创建一个“warWithPlugin”任务,将插件jar添加到libs 文件夹也是如此。

显然我不能将project-plugin 添加为依赖项,因为我得到了一个循环依赖项。我还有哪些其他选项可以将插件 jar 打包到 WAR 中?

【问题讨论】:

    标签: java gradle


    【解决方案1】:

    当然,您可以使用 project-plugin 作为依赖项创建一个新配置,然后将该配置添加到您的 WEB-INF/lib 目录中。

    configurations {
        plugin
    }
    
    dependencies {
        plugin project(':plugin')
    }
    
    war {
        into('WEB-INF/lib') {
            duplicatesStrategy 'exclude'
            from configurations.plugin
        }
    }
    

    【讨论】:

    • 这对战争有用,谢谢。当我通过 Gretty (github.com/akhikhl/gretty) 运行 Web 项目时,还有一种方法可以将 jar 放在类路径中吗?也许要在前面的步骤中复制插件 jar?
    • 你可以试试war { classpath configurations.plugin}
    • @Imazgon,如果答案对你有用,请接受。
    猜你喜欢
    • 1970-01-01
    • 2017-02-12
    • 2015-09-19
    • 2019-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-09
    相关资源
    最近更新 更多