Я бы хотел использовать JBoss Weld в качестве средства CDI в классическом c приложении Hello World в структурированном проекте maven. Чтобы все было максимально чисто и просто, я создал только объект среды Weld
и ничего более. Я также создал файл дескриптора развертывания bean. xml в src / main / resources / META-INF и src / test / resources каталоги. Я не стал go дальше, создав и инициализировав WeldContainer
et c. Мне просто интересно, почему эти настройки не работают в первую очередь.
Приложение отлично компилируется и генерирует исполняемый файл jar с помощью команды mvn package . Однако я получил ошибку во время выполнения:
C:\dev\eclipse-workspace\my-app>java -cp target/my-app-1.0.jar app.Hello
Exception in thread "main" java.lang.NoClassDefFoundError: org/jboss/weld/environment/se/Weld
at app.Hello.main(Hello.java:7)
Caused by: java.lang.ClassNotFoundException: org.jboss.weld.environment.se.Weld
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.j
ava:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoader
s.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
... 1 more
Итак, вот мой основной класс:
1 package app;
2
3 import org.jboss.weld.environment.se.Weld;
4
5 public class Hello {
6 public static void main(String[] args) {
7 Weld weld = new Weld();
8
9 System.out.println("Hello World");
10
11 weld.shutdown();
12 System.exit(0);
13 }
14 }
my pom. xml file:
<?xml version="1.0" encoding="UTF-8"?>
<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>
<groupId>jee</groupId>
<artifactId>my-app</artifactId>
<version>1.0</version>
<name>my-app</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>13</maven.compiler.source>
<maven.compiler.target>13</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>org.jboss.weld.se</groupId>
<artifactId>weld-se-core</artifactId>
<version>3.1.3.Final</version>
</dependency>
</dependencies>
</project>
и, наконец, структура моего проекта:
![enter image description here](https://i.stack.imgur.com/tc21V.png)
Ваша помощь приветствуется заранее.
Спасибо.
Алекс