gpt4 book ai didi

java - Maven 中的 JAR 依赖

转载 作者:行者123 更新时间:2023-12-02 12:47:19 24 4
gpt4 key购买 nike

我正在学习 Maven。我正在修改它并被这个问题震惊了,

我有两个 Maven 项目 Project_1 和 Project_2

Project_1 示例代码:

package com.sample;

public class App
{
public void hello(){

System.out.println("Hello from New Project1");

}
public static void main( String[] args )
{
//Empty
}
}

我构建了 project_1 并将 JAR 文件添加为项目 2 的依赖项。

Project_2 示例代码:

package com.newsample;
import com.sample.App;

public class Appn
{
public static void main( String[] args )
{
App obj=new App();
obj.hello();
}
}

Project_2 POM.xml 依赖项:

<dependency>
<groupId>com.sample</groupId>
<artifactId>project1</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
</dependencies>

但是,当我尝试从 JAR 文件运行该包时,它抛出以下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: com/sample/App

我已检查了project_2 JAR 文件,但App.class 未添加到其中。我的问题似乎很天真,但不应该添加该类,因为它是 project_2 的依赖项。还有其他方法可以使用 Maven 捆绑它吗?

最佳答案

使用shade插件生成一个可运行的jar(一个包含所有依赖jar的jar)。

 <build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>com.....Application</Main-Class>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>

</plugins>
</build>

关于java - Maven 中的 JAR 依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44720957/

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