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 创建优步jar有困难吗_Java_Maven_Maven 2_Uberjar - Fatal编程技术网

Java 创建优步jar有困难吗

Java 创建优步jar有困难吗,java,maven,maven-2,uberjar,Java,Maven,Maven 2,Uberjar,我正在尝试打包一个java归档(JAR),其中包含所有自包含的依赖项。首先,我尝试使用,尽管这缺少一些类。建议使用,这样会丢失不同的类。我认为发生的情况是,使用相同包名的多个依赖项似乎被跳过,因此slf4j之类的内容被跳过 我真正希望打包的jar包含自包含的库,而不是重新打包它们 我几乎放弃了,我想我应该使用只压缩罐子本身,没有依赖性的 注意:我知道其他人也提出了类似的问题,这导致了使用shade/assembly插件的建议,尽管没有人说明我遇到的具体问题 更新:根据khmarbaise的请求,

我正在尝试打包一个java归档(JAR),其中包含所有自包含的依赖项。首先,我尝试使用,尽管这缺少一些类。建议使用,这样会丢失不同的类。我认为发生的情况是,使用相同包名的多个依赖项似乎被跳过,因此slf4j之类的内容被跳过

我真正希望打包的jar包含自包含的库,而不是重新打包它们

我几乎放弃了,我想我应该使用只压缩罐子本身,没有依赖性的

注意:我知道其他人也提出了类似的问题,这导致了使用shade/assembly插件的建议,尽管没有人说明我遇到的具体问题

更新:根据khmarbaise的请求,以下显示了一个POM,其中所有类都被跳过。请注意,还有一个JAR使用相同的包结构,但它是本地化包,包含本地化包,但省略了所有类


4.0.0
com.ddtek
开放边缘
罐子
10.1C04
开放边缘
http://progress.com
com.ddtek
基础
10.1C04
com.ddtek
利用率
10.1C04

请注意,上面的POM是一个第三方库,不发布到maven,只存在于本地nexus repo中。

如果没有预定义的描述符满足您的需要,您可以编写自己的程序集

要包含依赖项,可以指定如下内容

<dependencySets>
    <dependencySet>
      <outputDirectory>/lib</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <useTransitiveDependencies>true</useTransitiveDependencies>
      <unpack>false</unpack>
       <scope>runtime</scope>
    </dependencySet>
  </dependencySets>

/解放党
假的
真的
假的
运行时
在您的pom中,类似于:

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <descriptors>
            <descriptor>assembly.xml</descriptor>
          </descriptors>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id> <!-- this is used for inheritance merges -->
            <phase>package</phase> <!-- bind to the packaging phase -->
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

org.apache.maven.plugins
maven汇编插件
2.3
assembly.xml
组装
包裹
单一的

然后根据您的需求进行定制。

如果没有预定义的描述符满足您的需要,您可以编写自己的程序集

要包含依赖项,可以指定如下内容

<dependencySets>
    <dependencySet>
      <outputDirectory>/lib</outputDirectory>
      <useProjectArtifact>false</useProjectArtifact>
      <useTransitiveDependencies>true</useTransitiveDependencies>
      <unpack>false</unpack>
       <scope>runtime</scope>
    </dependencySet>
  </dependencySets>

/解放党
假的
真的
假的
运行时
在您的pom中,类似于:

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>2.3</version>
        <configuration>
          <descriptors>
            <descriptor>assembly.xml</descriptor>
          </descriptors>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id> <!-- this is used for inheritance merges -->
            <phase>package</phase> <!-- bind to the packaging phase -->
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

org.apache.maven.plugins
maven汇编插件
2.3
assembly.xml
组装
包裹
单一的

然后根据您的要求进行定制。

显示pom并描述遗漏了哪些类?我有一个类似的问题,我对它的解决方案很感兴趣,因为我无法找到令人满意的解决方案。另一方面,你打算把所有的东西都放在一个罐子里吗?展示pom并描述遗漏了哪些类?我有一个类似的问题,我对它的解决方案很感兴趣,因为我无法找到一个令人满意的解决方案。另一方面,你打算把所有的东西都放在一个罐子里吗?