【问题标题】:How to package a jar and all dependencies within a new jar with maven如何使用 maven 在新 jar 中打包 jar 和所有依赖项
【发布时间】:2016-03-22 15:45:19
【问题描述】:

我有一个包含十个依赖项的 Maven 项目。之前,感谢maven-assembly-plugin

<plugin>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.4</version>
    <executions>
        <execution>
            <id>create-executable-jar</id>
            <phase>package</phase>
            <goals>
                <goal>single</goal>
            </goals>
            <configuration>
                <descriptors>
                    <descriptor>assembly.xml</descriptor>
                </descriptors>
                <archive>
                    <manifest>
                        <mainClass>myApp.Main</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </execution>
    </executions>
</plugin>

但是现在,我之前添加了一个步骤。我有一个插件可以生成我的应用程序的 jar。所以我只想让程序集插件将依赖项添加到这个 jar 中。不幸的是,该插件没有使用这个 jar,而是似乎使用了编译器的结果。

有没有办法指定我希望插件使用以前生成的 jar 而不是编译器的结果?

【问题讨论】:

  • 你是什么意思添加依赖到这个jar?谁生成 JAR?这不是那么简单。你需要有一个适当的清单。
  • 基本上,它与stackoverflow.com/questions/36150297/… 的问题相同,但采用了另一种方法。 Proguard 成功生成了一个混淆的 jar,但我不知道之后如何添加依赖项。我也可以添加依赖项然后混淆,但在这种情况下 Proguard 失败(未解析的引用...)
  • 这不是您想要的方式。当然不。解决另一个问题中的问题,你在这里伤害了自己。
  • 嗯,好的,但是,首先,为什么不呢?那么,如何?正如我所说,我不能在带有依赖项的打包 jar 上应用 proguard,因为 Proguard 无法找到对库的引用......而且我不知道如何解决这个问题。

标签: java maven jar maven-assembly-plugin


【解决方案1】:

尝试使用 maven-shade-plugin。你需要这样的东西:

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.3</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

【讨论】:

  • 天哪!有效 ! 3天我正在与这个作斗争,我变得很生气。我想拥抱你!
  • 很高兴能提供帮助 - 不需要拥抱 ;^)
猜你喜欢
  • 2012-11-01
  • 1970-01-01
  • 2014-06-08
  • 1970-01-01
  • 2010-12-16
  • 1970-01-01
  • 2020-05-08
  • 2011-10-01
  • 2019-07-06
相关资源
最近更新 更多