Java 带外部震击器的Maven组件';s
我正在尝试创建一个程序集(即可运行的jar),并希望所有外部jar都以“jar”格式包含在我的程序集中,而不是将外部jar中的类取出并作为“可运行的”jar文件的一部分。 我曾尝试在汇编文件中使用“unpack”选项(将其设置为false),但它会产生其他问题,例如,它不会为我的项目生成类文件,更不用说处理外部jar文件了。所以我肯定做错了什么。 非常感谢您的帮助。 下面是POM和装配信息。 谢谢 下面是我的POM文件的一个片段Java 带外部震击器的Maven组件';s,java,maven,jar,maven-assembly-plugin,Java,Maven,Jar,Maven Assembly Plugin,我正在尝试创建一个程序集(即可运行的jar),并希望所有外部jar都以“jar”格式包含在我的程序集中,而不是将外部jar中的类取出并作为“可运行的”jar文件的一部分。 我曾尝试在汇编文件中使用“unpack”选项(将其设置为false),但它会产生其他问题,例如,它不会为我的项目生成类文件,更不用说处理外部jar文件了。所以我肯定做错了什么。 非常感谢您的帮助。 下面是POM和装配信息。 谢谢 下面是我的POM文件的一个片段 <plugin> <groupId>
<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>
org.apache.maven.plugins
maven汇编插件
src/assembly/assemblyinfo.xml
com.company.sample
包裹
单一的
下面是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>
满满的
罐子
假的
/
真的
真的
运行时
maven汇编插件
2.6
带有依赖项的jar
com.evermore.talos.services.ttservice.ttstarter.UIStartup
组装
编撰
单一的
maven资源插件
2.7
org.apache.maven.shared
马文滤波
1.3
复制资源
包裹
复制资源
${basedir}/target/release
src/main/resources
真的
目标
*-dependencies.jar
请参考此Maven构建设置。这就是我们如何构建具有所有依赖项的可执行jar。
maven汇编插件
2.6
带有依赖项的jar
com.evermore.talos.services.ttservice.ttstarter.UIStartup
组装
编撰
单一的
maven资源插件
2.7
org.apache.maven.shared
马文滤波
1.3
复制资源
包裹
复制资源
${basedir}/target/release
src/main/resources
真的
目标
*-dependencies.jar
请参考此Maven构建设置。这就是我们如何构建具有所有依赖项的可执行jar。谢谢Shineed。感谢您的快速回复。我试图避免使用“jarwithdependencies”decscriptorRef,原因是我希望能够为程序集提供自己的“名称”。例如,在assemblyinfo.xml中,您会看到名称为FULL。它在jar文件的末尾追加“_FULL”。因此,最终的JAR文件将类似于MyZookeeperexample_1_FULL.JAR,而不是“MyZookeeperexample_1_JAR-with-dependencies.JAR”。此外,当您使用“JAR with dependenciency”时,外部JAR是“解压”的,这意味着您将得到一堆类文件,这正是我试图避免的。谢谢Shineed。感谢您的快速回复。我试图避免使用“jarwithdependencies”decscriptorRef,原因是我希望能够为程序集提供自己的“名称”。例如,在assemblyinfo.xml中,您会看到名称为FULL。它在jar文件的末尾追加“_FULL”。因此,最终的JAR文件将类似于MyZookeeperexample_1_FULL.JAR,而不是“MyZookeeperexample_1_JAR-with-dependencies.JAR”。此外,当您使用“JAR with dependenciency”时,外部JAR是“unpackage”的