Gretty:重复的片段名称:org_apache_jasper

时间:2017-08-14 22:08:11

标签: java spring heroku gradle gretty

我使用gretty轻松运行dev服务器和webapp-runner以部署到heroku。

以下是我的buildscript { repositories { jcenter() } dependencies { classpath 'org.akhikhl.gretty:gretty:+' } } apply plugin: 'java' apply plugin: 'war' apply plugin: 'eclipse-wtp' apply plugin: 'idea' apply plugin: 'org.akhikhl.gretty' repositories { mavenLocal() mavenCentral() } dependencies { compile 'org.springframework:spring-webmvc:4.3.10.RELEASE' compile 'org.springframework:spring-orm:4.3.10.RELEASE' compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.0' compile group: 'org.hibernate', name: 'hibernate-core', version: '5.2.10.Final' compile group: 'org.apache.commons', name: 'commons-dbcp2', version: '2.1.1' compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.6' compile group: 'org.hibernate.validator', name: 'hibernate-validator', version: '6.0.1.Final' compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.0' compile group: 'org.postgresql', name: 'postgresql', version: '42.1.4' compile 'com.github.jsimone:webapp-runner:8.5.11.3' } gretty { httpPort = 8080 servletContainer = 'jetty9' contextPath = '/' } eclipse { wtp { component { contextPath = '/' } } } ///////// Tasks for deployment to heroku task stage() { dependsOn clean, war } war.mustRunAfter clean task copyToLib(type: Copy) { dependsOn war into "$buildDir/server" from(configurations.compile) { include "webapp-runner*" } } stage.dependsOn(copyToLib)

java.lang.IllegalStateException: Duplicate fragment name: org_apache_jasper for jar

如果我删除了webapp-runner,一切运行正常,但是在尝试启动gretty时我遇到以下错误:

HKQuantityTypeIdentifier.appleExerciseTime

不是专家,但我认为这与gretty和webapp-runner下载类似文件以及导致冲突的事实有关吗?

非常感谢有关这方面的一些信息。我如何通过这个?是否有更好的方法让开发服务器+能够部署到heroku? (也许两者都使用webapp-runner?)

1 个答案:

答案 0 :(得分:1)

我建议在本地运行,就像Heroku运行您的应用程序一样,使用以下命令:

$ ./gradlew stage
$ heroku local web

如果您想使用gretty进行开发,则需要从开发构建中排除webapp-runner(可能包含stageDev任务),并从stage构建中排除gretty