首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gretty:重复片段名称: org_apache_jasper

Gretty:重复片段名称: org_apache_jasper
EN

Stack Overflow用户
提问于 2017-08-15 06:08:11
回答 1查看 392关注 0票数 0

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

以下是我的gradle.build

代码语言:javascript
复制
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)

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

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

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

希望能得到一些关于这方面的信息。我怎么才能克服这个问题呢?有没有更好的方式让开发服务器+能够部署到heroku?(也许两者都使用webapp-runner?)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-15 21:11:26

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

代码语言:javascript
复制
$ ./gradlew stage
$ heroku local web

如果您希望使用gretty进行开发,则需要从您的开发构建中排除webapp-runner (可能使用stageDev任务),并从您的webapp构建中排除gretty。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45683752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档