gpt4 book ai didi

java - 带有外部 jar 的 Maven 程序集

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

我正在尝试创建一个程序集(即一个可运行的 jar ),并且希望将所有外部 jar 以“jar”格式包含在我的程序集中,而不是从外部 jar 中取出类并使其成为我的“可运行”jar 文件的一部分。我尝试在程序集文件中使用“unpack”选项(将其设置为 false),但它会产生其他问题,例如,它不会为我的项目生成 CLASS 文件,更不用说处理外部 jar 文件了。所以我肯定做错了什么。帮助将不胜感激。POM 和组装信息如下。谢谢

这是我的 POM 文件中的一个片段。

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/assembly/assemblyinfo.xml</descriptor>
</descriptors>
<archive>
<manifest>
<mainClass>com.company.sample</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>

这是 assemblyinfo.xml

<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.0.0 http://maven.apache.org/xsd/assembly-2.0.0.xsd">
<id>FULL</id>
<formats>
<format>jar</format>
</formats>
<includeBaseDirectory>false</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>/</outputDirectory>
<useProjectArtifact>true</useProjectArtifact>
<unpack>true</unpack>
<scope>runtime</scope>
</dependencySet>
</dependencySets>
</assembly>

最佳答案

<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.6</version>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>com.evermore.talos.services.ttservice.ttstarter.UIStartup</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance merges -->
<phase>compile</phase> <!-- bind to the packaging phase -->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.7</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-filtering</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>package</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/release</outputDirectory>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>target</directory>
<includes>
<include>*-dependencies.jar</include>
</includes>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>

</plugins>
</build>

请引用此 Maven build设置。这就是我们构建具有所有依赖项的可执行 jar 的方式。

关于java - 带有外部 jar 的 Maven 程序集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43053632/

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