Gradle在构建期间编译activemq-all-5.9.0依赖jar中的java文件

时间:2013-12-10 23:02:23

标签: gradle war

我最近在使用Gradle构建的Web应用程序中包含了ActiveMQ 5.9.0。

compile "org.apache.activemq:activemq-all:5.9.0"

问题在于,由于 activemq-all-5.9.0.jar 中包含类文件和源java文件,因此当使用以下命令构建war文件时,Gradle尝试编译activemq jar文件中的java文件并将它们包含在war中。

gradle clean war

在部署期间,由于编译activemq类,我的应用程序无法启动。从/ WEB-INF / classes中手动删除它们会使应用程序正常工作。我正在寻找自动方式将这些java类排除在我的war文件中。有什么帮助吗?

2 个答案:

答案 0 :(得分:0)

您看到的是Java编译器的默认行为。将源路径明确设置为“无”应该可以解决问题:

tasks.withType(JavaCompile) {
    options.compilerArgs += ["-sourcepath", "''"]
}

由于之前已经提出过这个问题,您还应该能够在Stack Overflow或Gradle Forums上找到现有答案。

答案 1 :(得分:0)

javadoc  {
    options.addStringOption("sourcepath", "")
}

per this disscussion on the gradle forums修复了javadoc任务的问题,为不同的第三方jar发出相同的错误。