Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带外部震击器的Maven组件';s_Java_Maven_Jar_Maven Assembly Plugin - Fatal编程技术网

Java 带外部震击器的Maven组件';s

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>

我正在尝试创建一个程序集(即可运行的jar),并希望所有外部jar都以“jar”格式包含在我的程序集中,而不是将外部jar中的类取出并作为“可运行的”jar文件的一部分。 我曾尝试在汇编文件中使用“unpack”选项(将其设置为false),但它会产生其他问题,例如,它不会为我的项目生成类文件,更不用说处理外部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>        

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”的