gpt4 book ai didi

java - Maven 将项目部署为 Jar - 缺少类定义

转载 作者:行者123 更新时间:2023-11-30 06:03:07 24 4
gpt4 key购买 nike

我正在尝试从 Intellij Idea 中创建的 Maven 项目创建一个可运行的 jar。

我尝试通过 Intellij 构建 Artifact,但没有成功。找不到主文件。

之后我通过 Maven 进行了尝试: -mvn 编译 - mvn包

这会创建一个可运行的 jar 来执行,但稍后在解析 csv 时会抛出异常:

Exception in thread "JavaFX Application Thread" java.lang.NoClassDefFoundError: org/apache/commons/csv/CSVParser

但是它被添加到我的 pom.xml 中...我下载了所有内容,甚至是文档。我可以在外部库中看到 org.apache.commons:commons-csv 包,但在创建 jar 时似乎丢失了。

<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<groupId>sceosa</groupId>
<artifactId>CEO_SA_ReportingLine</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<finalName>CEOSA</finalName>
<plugins>
<!-- download source code in Eclipse, best practice -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-eclipse-plugin</artifactId>
<version>2.9</version>
<configuration>
<downloadSources>true</downloadSources>
<downloadJavadocs>false</downloadJavadocs>
</configuration>
</plugin>
<!-- Set a compiler level -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>

<!-- Make this jar executable -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<archive>
<manifest>
<mainClass>de.Main</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>

<dependencies>
<!-- https://mvnrepository.com/artifact/org.hsqldb/hsqldb -->
<!-- https://mvnrepository.com/artifact/org.apache.maven.plugins/maven-compiler-plugin -->

<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.7.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>25.1-jre</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-csv</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>

任何人都可以看到 pom 文件或 intellij 有什么问题吗?

最佳答案

默认情况下,maven 在构建 jar 时不包含依赖项。仅当您以其他方式存在依赖关系时,该 jar 才会起作用。

您可以使用maven-assembly-plugin构建一个带有依赖项的 jar。

关于java - Maven 将项目部署为 Jar - 缺少类定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51878471/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com