gpt4 book ai didi

java - 如何使用其他 jar 创建自治 jar?

转载 作者:太空宇宙 更新时间:2023-11-04 10:46:15 25 4
gpt4 key购买 nike

我的java项目不大,实际上是一个学习项目,并且我使用了一些无法通过maven导入的eclipse jar。所以我只是将它们放在资源文件夹中并创建依赖项。但当我制作一个包时,一切都出了问题。它要么不包含这些依赖项,要么不包含我的 src 文件夹(!)。

我的项目结构是:

src/com/myName/Main

resources/jar1 jar2

我使用 jar-with-dependencies 描述符,但我似乎迷失在其中。我如何解决它?现在结果 jar 中缺少我的 src。

我的pom.xml是

<?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>

<groupId>groupId</groupId>
<artifactId>MyProgram</artifactId>
<build>
<plugins>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>controller.MainController</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>

<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<version>1.0-SNAPSHOT</version>

<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>

<dependencies>

<dependency>
<groupId>org.eclipse.swt</groupId>
<artifactId>org.eclipse.swt</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/resources/org.eclipse.swt.win32.win32.x86_64_3.106.2.v20171129-0543.jar
</systemPath>
</dependency>

<dependency>
<groupId>swing2swt</groupId>
<artifactId>swing2swt</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/resources/swing2swt.jar</systemPath>
</dependency>
<dependency>
<groupId>org.eclipse.ui</groupId>
<artifactId>ide</artifactId>
<version>3.2.1-M20060915-1030</version>
</dependency>
<dependency>
<groupId>org.eclipse.platform</groupId>
<artifactId>org.eclipse.swt</artifactId>
<version>3.106.2</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.6.4</version>
</dependency>

</dependencies>

</project>

最佳答案

为了将项目及其依赖项聚合到单个可分发的 JAR 文件中,您可以使用 Apache Maven Assembly Plugin 。典型配置如下:

<project>
[...]
<build>
[...]
<plugins>
<plugin>
<!-- NOTE: We don't need a groupId specification because the group is
org.apache.maven.plugins ...which is assumed by default.
-->
<artifactId>maven-assembly-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
[...]
</project>

Here是一个示例用法。

关于java - 如何使用其他 jar 创建自治 jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48385481/

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