因此,在尝试了一些Maven之后,我感到非常沮丧。
我设法让它构建了一个可运行的jar,但是我在依赖项方面遇到了麻烦。
为进行测试,我添加了2个依赖项。一个来自另一个Maven项目,另一个我复制到一个lib文件夹中。
我设法让Maven将jar复制到target / classes / lib文件夹中,但是jar无法访问它们。在查看了几种解决方案之后,似乎没有一个适合我。
这是我当前的Pom
<?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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>pc</groupId>
<artifactId>HelloLib</artifactId>
<packaging>jar</packaging>
<version>1.0-SNAPSHOT</version>
<name>HelloLib</name>
<url>http://maven.apache.org</url>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/classes/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>pc.App</mainClass>
<!-- <classpathPrefix>lib</classpathPrefix> -->
<!-- <mainClass>test.org.Cliente</mainClass> -->
</manifest>
<manifestEntries>
<Class-Path>lib/</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>pc</groupId>
<artifactId>Library</artifactId>
<version>1.0-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>pc</groupId>
<artifactId>testLib</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/testLib.jar</systemPath>
</dependency>
</dependencies>
</project>
如果我执行jar,它会给我ClassNotFoundException。
答案 0 :(得分:2)
最流行的Java依赖管理系统可能是maven,请参见the Apache Maven Project。 {@ 3}}也可以代替maven。
如果您还想要项目的自动构建过程,则可能需要考虑使用gradle之类的工具。