как развернуть зависимость maven от WildFly - PullRequest
0 голосов
/ 20 июня 2020

Я пытаюсь понять, как сообщить WildFly через maven, что нужны определенные библиотеки. У меня есть проект maven в eclipse-jee. Когда я вызываю JSP, который работает один, все в порядке. Но когда я вызываю JSP, поддерживающий класс которого использует класс из библиотеки, я получаю ClassNotFoundException. Когда я запускаю этот вспомогательный класс локально, а не на сервере, он работает отлично. Библиотека добавляется как зависимость от maven, и это нормально, пока я остаюсь локальным. Но когда я развертываю WAR в WildFly, библиотека не развертывается.

Вот мой POM:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <name>hello_neo4j</name>
  <artifactId>myNeo4j</artifactId>
  <dependencies>
        <dependency>
            <groupId>org.neo4j.driver</groupId>
            <artifactId>neo4j-java-driver</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.3.3</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
        </dependency>
        <dependency>
            <groupId>javax.enterprise</groupId>
            <artifactId>cdi-api</artifactId>
            <version>2.0.SP1</version>
        </dependency>
        <dependency>
            <groupId>org.reactivestreams</groupId>
            <artifactId>reactive-streams</artifactId>
            <version>1.0.3</version>
        </dependency>
  </dependencies>
  <groupId>com.my-domain</groupId>
  <version>0.0.1</version>
  <packaging>war</packaging>
</project>

Как только я пытаюсь создать экземпляр org.neo4j.driver .Config , я получаю:

...
Caused by: java.lang.ClassNotFoundException: org.neo4j.driver.Config from [Module "deployment.hello_neo4j.war" from Service Module Loader]
    at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:255)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:410)
    at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
    at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
    ... 59 more

Итак, как я могу сказать eclipse, что он должен либо упаковать библиотеку в WAR, либо развернуть ее вместе с WAR? Я предполагаю, что где-то в POM должно быть что-нибудь, говорящее о том, что зависимость должна быть развернута, но я не знаю, как это сделать. В эффективном POM 1012 * я вижу <scope>compile</scope> и думал, что это будет означать, что зависимость будет скомпилирована в POM. Но, очевидно, мне нужно что-то еще, но что?

Заранее благодарим за полезные комментарии!

1 Ответ

0 голосов
/ 20 июня 2020

перед тем, как опубликовать вопрос, я очень долго искал ... Но теперь, вскоре после его публикации, я нашел ответ: нужна просто еще одна зависимость, чтобы сервер мог разрешать зависимости от развернутого POM:

    <dependency>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
        <version>3.0.0-M1</version>
        <type>maven-plugin</type>
        <scope>runtime</scope>
    </dependency>

Надеюсь, это поможет другим искать меньше времени, чем я.

...