将jar项目打包为战争项目(Gradle)

时间:2014-09-28 19:12:52

标签: java gradle

我有一个Gradle项目,它包含3个模块:

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

我不希望每次创建WAR时都将插件手动添加到project-web的类路径中,所以我想扩展WAR任务并创建一个“warWithPlugin”任务,它会添加插件jar也可以到libs文件夹。

显然我不能将project-plugin添加为依赖项,因为我得到循环依赖项。我还有什么其他选择来将插件jar打包到WAR中?

1 个答案:

答案 0 :(得分:1)

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

configurations {
    plugin
}

dependencies {
    plugin project(':plugin')
}

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