当前位置: 首页 > 知识库问答 >
问题:

gradle war不想编译我的项目

万楷
2023-03-14

我正在尝试使用gradle编译一个war文件以部署到JBoss 7.1 AS,但编译失败(找不到ServletContext)……

gradle.build.见下文

错误:

/workspace/agile runner/src/main/Java/com/agile runner/web/config/agilerunnerapplicationinitializer . Java:20:找不到符号symbol:method add listener(org . spring framework . web . context . context loader listener)位置:interface javax . servlet . servlet context servlet context . add listener(new context loader listener(root context));^/workspace/agile runner/src/main/Java/com/agile runner/web/config/agile runnerapplicationinitializer . Java:22:找不到符号symbol:method add servlet(Java . lang . string,org . spring framework . web . servlet . dispatcher servlet)位置:interface javax . servlet . servlet context servlet registration。动态dispatcher = servlet context . add servlet(" dispatcher ",new dispatcher servlet(root context));^ 2错误:编译Java失败

gradle.build:

apply plugin:'eclipse'
apply plugin:'war'
apply plugin:'cargo'

repositories {
    mavenCentral()
}

dependencies {
    def cargoVersion = '1+'

    cargo 'org.codehaus.cargo:cargo-core-uberjar:$cargoVersion',
      'org.codehaus.cargo:cargo-ant:$cargoVersion',
      'org.jboss.as:jboss-as-controller-client:7.1+'

    providedCompile 'javax.servlet:servlet-api:2+',
                'org.jboss.spec.javax.servlet:jboss-servlet-api_3.0_spec:1+',
                'org.jboss.as:jboss-as-controller-client:7.1+'

    compile 'org.springframework:spring-context:4+',
        'org.springframework:spring-webmvc:4+',
        'org.thymeleaf:thymeleaf:2+',
        'org.thymeleaf:thymeleaf-spring4:2+',
        'log4j:log4j:1+'

    testCompile 'junit:junit:4+'
}

    buildscript {
        repositories {
            mavenCentral()
        }

        dependencies {
         classpath 'org.gradle.api.plugins:gradle-cargo-plugin:0+'
        }
}
cargo {
containerId = 'jboss71x'
port = 8080
remote {
    hostname = '127.0.0.1'
}
}

感谢您的帮助。

Y.

共有1个答案

蒋胡非
2023-03-14

请尝试更改您的servlet-api依赖关系

from:<code>‘javax。servlet:servlet api:2'

到:<代码>“javax.servlet:javax.servlet api:3.0.1”

JEE6(Servlet规范3.0)之前的ServletContext没有注册监听器的API机制。

此外,'org.jboss.spec.javax.servlet:jboss-servlet-api_3.0_spec:1'应该是提供的runtime(如果有)。这可能是您在IDE中没有错误,但使用gradle编译的原因

 类似资料:
  • 在一些网站上,我读过“使用一些反编译程序反编译apk是可能的”。(即)从apk文件中获取源代码。 但我想保护我的代码。反编译后不显示加密算法代码或者不想反编译我的apk文件。那有可能吗?请你给点建议好吗?

  • 我已经谷歌寻找解决方案,但我已经尝试了所有的方法,其中任何一个工作。首先,我的项目可以解决任何问题,后来我添加了一些更改,这就发生了。当我删除所有更改时,问题并没有消失。当我试图完成这个项目时,gradle控制台显示: Main.java:106:多个dex文件定义Lbolts/Aggregate Exception;com.android.dx.merge.DexMerger.readSorta

  • 我使用maven命令来清理、构建整个项目、创建war并部署到服务器。我不能使用Intellij来做这件事,因为我只有社区版。它在与intellij相同的目录中构建项目。 为了加快速度,我编写了一个脚本,可以在本地“target”目录中找到比服务器中更新的已编译文件,并进行复制。虽然一切正常,但问题是Intellij并没有将使用maven编译的类视为应该跳过并重新构建整个项目的类。 目前它的工作原理

  • 我试图在Android Studio中导入一个项目,该项目最初是要用Android-19 API编译的。然而,现在我需要让它在Android4.0.3的设备上工作(所以我想用android-15编译)。然而,Android Studio一直告诉我这一点,不管我做什么: (幸运的是我没有安装android-19,否则我根本不会注意到,对吧?) 我尝试了stackoverflow和其他站点中提出的解决

  • 我有一个Java FX项目,正在使用maven 3.0.5进行构建。当我运行mvn package/install时,项目失败并抱怨包javafx.*不存在。据我所知,Javafx是用Java1.7封装的,所以构建过程中不采用这一点是没有意义的。当我在IDE(intellij)中编译它时,它工作得很好,然后我的maven构建也成功安装了,但是我不希望每次进行干净的安装时都要经历IDE。有什么想法吗

  • 我在JDK 1.6下创建了一个Intellij项目。然后我安装了JDK 1.7并删除了JDK 1.6。 当我打开项目时,我在“项目结构”对话框中将JDK更改为1.7。 但是如果我在代码中添加错误并选择Build,我的文件不会被重新编译- 我也试过归档- 如何再次启用源代码编译? 我使用的是IntelliJ IDEA 12.1.4 Ultimate。 更新1 (23.09.2013 18:48MSK