这应该很简单,但我无法绕过它.我需要使用第三方罐子创建一个uberjar.我已经按照这些说明操作了:包含一个非Mavenized依赖项,以便它与maven-shade-plugin一起使用并将它们添加到本地存储库中.但现在呢?每个Maven教程/示例都有点阴暗(双关语),我只是不知道如何正确编辑.pom文件以使其工作.
此外,我对整体阴影"插件"感到困惑.我的意思是,我遵循了基本的Maven教程,它一切都很好,花花公子.但是当我查看树荫插件页面时,除了源代码之外我找不到它下载.我的意思是,这不是一个插件吗?我不应该下载二进制文件并以某种方式将其安装到Maven中吗?
对于极端的noobish问题感到抱歉,但不用说,我知道对Maven的蹲坐.
要创建阴影(uber)jar,您只需要声明您的阴影插件pom.xml.
关于阴影插件的安装,只需在plugins您的部分中声明它即可pom.xml.Maven插件不是手动安装的,而是由Maven自动下载(如果尚未下载;就像依赖项一样),存储在本地存储库中,并在项目需要时使用.
至于使用它,就像其他插件一样,pom.xml通过添加一个<plugin>满足您配置需求的元素来声明它.这个插件什么都不做(有些做,有些不做) - 你必须指定要执行的"目标"(想想"类的方法"),以及"阶段"(想想构建过程的"步骤") ).除非您有奇怪的需求,否则请在"包"阶段指定"阴影"目标(见下文).
有关更多配置的可能性,请参阅阴影使用页面及其示例(尤其是选择超级jar的内容).这是一个简单的例子,当你运行时mvn package,用target/uber jar 替换目录中的原始jar.它只包含运行时依赖项,而不是测试时使用的依赖项(请注意<scope>junit依赖项的元素,它不包含在uber jar中).
<project>
<groupId>com.sample</groupId>
<artifactId>test</artifactId>
<version>1.0</version>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>com.sample</groupId>
<artifactId>test-core</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6260 次 |
| 最近记录: |