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

Gradle-NullPointerException中的WildFly Swarm+War+local Jar依赖项

易修洁
2023-03-14

我正在尝试使用WildFly Swarm构建一个web应用程序服务器,并且应用程序必须能够在内部运行另一个Java程序(我不想将其作为外部进程运行)。我试图将外部程序作为.jar依赖项包含到我的web应用程序中,但是,wildfly-swarm-package任务总是失败,原因如下:

:clean
:compileJava
:processResources UP-TO-DATE
:classes
:war
:wildfly-swarm-package FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':wildfly-swarm-package'.
> java.lang.NullPointerException (no error message)
buildscript {
  version = System.getProperty('swarmVersion') ?: '2016.10.0'

  repositories {
    mavenLocal()
    mavenCentral()
  }

  dependencies {
    classpath "io.spring.gradle:dependency-management-plugin:0.5.6.RELEASE"
    classpath "org.wildfly.swarm:wildfly-swarm-plugin:$version"
  }
}

apply plugin: "io.spring.dependency-management"
apply plugin: 'wildfly-swarm'
apply plugin: 'java'
apply plugin: 'application'
apply plugin: 'war'

//mainClassName = 'org.siret.prank.webapp.rest.Main'

swarm {
  properties {
    swarm.http.port = 8181
  }
}

repositories {
  mavenLocal()
  mavenCentral()
  maven {
    url 'https://maven.repository.redhat.com/nexus/content/repositories/releases/'
  }
  maven {
    url 'https://maven.repository.redhat.com/nexus/content/repositories/thirdparty-releases/'
  }
  flatDir {
       dirs 'libs'
   }
}

dependencyManagement {
  imports {
    mavenBom "org.wildfly.swarm:bom-all:$version"
  }
}

dependencies {
  compile group: 'org.biojava', name: 'biojava-core', version: '4.2.4'
  compile group: 'org.biojava', name: 'biojava-structure', version: '4.2.4'
  compile "org.wildfly.swarm:jaxrs"
  compile group: 'org.wildfly.swarm', name: 'undertow', version: '2016.10.0'
  compile 'org.codehaus.groovy:groovy-all:2.4.7'
  compile fileTree(dir: 'libs', include: ['*.jar'])
  compile fileTree(dir: 'libs/lib', include: ['*.jar'])
}

task debugJar(dependsOn:"wildfly-swarm-package") << {
  javaexec {
    main="-jar";
    args=[
            "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5006",
            "build/libs/prank-webapp-swarm.jar"
    ]
  }
}

task runJar(dependsOn:"wildfly-swarm-package") << {
  javaexec {
    main="-jar";
    args=[
            "build/libs/prank-webapp-swarm.jar"
    ]
  }
}

作为一个实验,我尝试清空libs文件夹,但错误仍然存在。

谢谢,卢卡斯

共有1个答案

毕衡
2023-03-14

我迁移到Maven是为了发现将jar导入到本地Maven存储库是问题的答案。

现在,两人都是一个普通的工作。

 类似资料:
  • 我是新手。使用Gradle3.5,我试图从java项目创建一个war构建。下面是我的分级文件内容。 当我生成war构建时,它会在目录下添加jar文件。但是,除了这些jar文件之外,我还需要组中的jar文件和任务中生成的jar文件。我怎样才能做到这一点呢?

  • 我们在不同的项目中有多个war文件,比如A和B,共享像图像这样的公共资源。公共资源被放置在单独的项目E中的war模块中,并且这个war文件作为依赖项添加到项目a和B中的所有war模块中。目前,我们正在使用maven资源插件将这些公共资源复制到a和B模块的根目录中。 我们如何使用Gradle来执行相同的操作?我尝试使用下面的配置,但是文件没有复制到生成的war文件中。它们只复制到build/libs

  • 我们最近迁移到Gradle build,我添加了一个war that任务,它包含web.xml和依赖的jar以及在jar任务中创建的jar。

  • 问题内容: 我正在构建一个android应用程序,并且正在使用recaptcha和easywsdl存储库。这两个存储库都包含okhttp和okio jars,并且在启动存在重复类的应用程序时出现错误。但是,这些并不相同。如果我从项目中排除okhttp(由recaptcha存储库添加),则recaptcha不会具有由recaptcha添加的okhttp.jar中描述的特定方法。 代码段:http :

  • 顾名思义,仓库就存放东西的. 放什么东西呢? 简单来说就是存放我们依赖的jar包. Gradle支持哪些仓库? Maven仓库 Ivy仓库 平级目录仓库 如何在构建中加入这些仓库? Ivy仓库应该用的人不多吧,这里就不多作介绍了,重点放在maven仓库上. 在build.gradle中添加仓库的声明,方法如下: 从Maven仓库中获取依赖 repositories { 1.从指定的远程mave

  • War插件增加了名为providedCompile和providedRuntime的两个依赖配置.这两个配置有相同的作用域在编译或者运行时的配置,不同之处在于是否会将war文件归档.很重要的一点是它们都会提供配置传递.比如在任意的provided配置中添加了commons-httpclient:commons-httpclient:3.0,该依赖依赖于commons-codec,因为这个一个”pr