WildFly Swarm + War + локальные зависимости Jar в Gradle – NullPointerException

Я пытаюсь создать сервер веб-приложений с помощью WildFly Swarm, и приложение должно иметь возможность запускать внутри другую программу Java (я не хочу запускать ее как внешний процесс). Я пытаюсь включить внешнюю программу в качестве зависимости .jar в свое веб-приложение, однако задача 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)

Это мой gradle.build файл:

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"
    ]
  }
}

Плагин War работает нормально, я могу найти jar-файлы в каталоге WEB-INF/lib в архиве.

В качестве эксперимента я попытался очистить папку libs, и ошибка все еще сохраняется.

Спасибо, Лукас


person Lukas Jendele    schedule 13.11.2016    source источник
comment
К сожалению, наша поддержка плагина Gradle не так хороша, поскольку никто из нас не знаком с ним, поскольку мы являемся пользователями Maven. Что делает программа, которую вы пытаетесь запустить внутри WF Swarm? Может есть другой подход?   -  person Ken    schedule 14.11.2016


Ответы (1)


Я перешел на Maven, чтобы узнать, что импорт jar в локальный репозиторий maven — это ответ на проблему.

Теперь оба Maven и Gradle работают.

person Lukas Jendele    schedule 19.11.2016