问题标签 [maven-assembly-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
15178 浏览

maven - maven 程序集忽略父依赖项

当依赖项直接包含在 pom 文件中时,我的程序集描述符会正确应用包含和排除。

但是,当我将依赖项放在父 pom 文件中时,程序集:目录目标报告包含和排除尚未触发。

你知道为什么 maven-assembly-plugin 会忽略父依赖吗?我该如何解决?

以下是 Maven 和程序集描述符:

装配描述符:

子 POM 程序集插件定义:

父 POM 依赖项:

构建报告中的警告:

0 投票
6 回答
87710 浏览

java - Is it possible to rename a maven jar-with-dependencies?

I'm currently using the jar-with-dependencies assembly to create such a jar. However, the name of my jar is a bit long.

Since this jar is being used by RPG programs on an AS400, I'd like to shorten it to make life a bit easier for those developers. But, other than by hand, I've not found a way to rename the jar from the usual project-name-version-classifier-jar-with-dependencies.jar. I'd like something like project-name-version-classifier-full.jar

Is there anyway to do this without basically copying the jar-with-dependencies assembly descriptor and calling it full?

Additionally, I want to continue to have the jar without the classpath assembled stored in the repository.

I need two artifacts. The jar with my classifier holding the region which the build is for. The jar with all dependencies which also includes the region.

project-name-version-region-full.jar and project-name-version-region.jar should be stored in the repository. In the first example the classifier is region-full, in the 2nd it's region. The latter is working.

0 投票
3 回答
27782 浏览

maven-2 - Maven - 在 jar 中包含依赖库而不解包依赖项?

我们正在尝试构建一个包含未打包依赖 jar 的客户端jar。清单应该有class-path依赖 jar 的条目。下面的代码片段有效,但罐子已解包 - 我们如何阻止罐子被解包?

0 投票
2 回答
5550 浏览

java - 某些文件的 maven-assembly-plugin

我有多模块项目,这是父 pom。

在项目 atom-persitence 中,我有以下文件:

com.atoms.vo.*

com.atoms.service.*

com.atoms.dao.*

在atoms-reglas中我有:

com.atoms.rules.*

我如何使用程序集插件来制作一个只有以下类的 jar:

com.atoms.vo.* 和 com.atoms.rules.* ?

0 投票
1 回答
611 浏览

maven-2 - 使用 Maven 程序集和依赖插件的问题

我想组装一个如下所示的 Web 模块:

  • src/main/java(有一些常见的实用程序、操作等)
  • src/main/resources(有一些spring beans文件,配置等)
  • src/main/webapp(有一些jsp、css、图像等)

然后我想将此组装模块用作另一个 Web 应用程序中的依赖项,该应用程序也看起来像一个典型的maven2 Web 应用程序。

  • src/main/java(有一些动作等)
  • src/main/resources(有一些spring beans文件,配置等)
  • src/main/webapp(有一些jsp、css、图像等和web.xml)

基本上我希望在构建(mvn clean install)主 Web 应用程序时,首先组装公共 Web 模块,然后与主 Web 应用程序合并,然后应该构建最终设置(在组装和合并之后)并且应该出现 .war其中。

我尝试使用 maven 程序集和依赖插件,但无法成功合并模块,尽管我能够组装模块。任何人都知道如何做到这一点?

0 投票
7 回答
76476 浏览

maven-2 - 具有依赖项的 Maven 2 程序集:不包括范围“系统”下的 jar

我正在使用 maven-assembly 插件来创建我的应用程序的 jar,包括它的依赖项,如下所示:

(我省略了一些与问题无关的其他内容)

到目前为止,这一切正常,因为它创建了一个lib包含所有依赖项的目录。但是,我最近添加了一个范围为 的新依赖项system,它不会将其复制到lib输出目录。我必须在这里缺少一些基本的东西,所以我寻求帮助。

我刚刚添加的依赖项是:

我能够包含此依赖项的唯一方法是将以下内容添加到程序集元素中:

但是,这迫使我在重命名此 jar 时更改 pom 和程序集文件(如果有的话)。此外,这似乎是错误的。

我已经尝试过<scope>runtime</scope>并且dependencySets没有<include>sourceforge.jchart2d:jchart2d</include>运气。

那么如何system在 maven 2 中将作用域 jar 包含到您的程序集文件中呢?

非常感谢

0 投票
2 回答
31566 浏览

deployment - 使用 maven-release-plugin 部署程序集包

我们使用 Hudson 和maven-release-plugin进行发布构建。现在我有一个项目,其中包含一个程序集,该程序集将所有需要的组件放在一起,然后将它们打包到具有所需目录结构的 .tar.gz 包中。

现在我试图在 release:perform 目标期间让 release-plugin 将此包部署到我们的 Maven 存储库,但只部署了标准的东西(源代码、javadoc、POM)。

我已经将组装目标绑定到 maven 包阶段,并且 .tar.gz 在发布期间得到构建,但没有上传到存储库。任何提示我在这里做错了什么?

这是程序集插件配置:

我运行构建版本的命令是

0 投票
1 回答
388 浏览

maven-2 - 是否可以构建一个包含 jar-with-dependencies 的 zip-distribution?

我想为我的项目制作一个二进制 zip 分发包,其中包含一个 uber jar 和一组脚本。现在,我正在使用两个描述符,第一个用于 uber jar,第二个用于包含 uberjar + 额外脚本和文档的 zip。问题是这两个都部署到maven repo,而我实际上并不需要uberjar,只需要发行版。有没有办法:

  • 使用一个描述符创建发行版或
  • 避免部署uberjar?

编辑:我发现关于第 2 部分的这个问题,但也许有更简单的方法来做到这一点......

0 投票
1 回答
34217 浏览

maven-2 - 生成具有不同/过滤类的多个 jar 的 Maven 最佳实践?

我开发了一个在各种项目中使用的 Java 实用程序库(类似于 Apache Commons)。除了胖客户端之外,我还将它用于移动客户端(带有 J9 Foundation 配置文件的 PDA)。随着时间的推移,作为单个项目开始的库分布在多个包中。结果,我最终得到了很多功能,这并不是所有项目都真正需要的。

由于这个库也在一些移动/PDA 项目中使用,我需要一种方法来收集使用的类并生成实际的专用 jar。

目前在使用这个库的项目中,我有 Ant jar 任务,它们生成(从实用程序项目)专用 jar 文件(例如:my-util-1.0-pda.jar、my-util-1.0-rcp.jar)使用包含/排除 jar 任务功能。对于移动项目,由于生成的 jar 文件的大小限制,这主要是需要的。

现在迁移到 Maven 我只是想知道是否有任何最佳实践可以达到类似的效果。我考虑以下场景:

[1] - 除了主 jar 工件(my-lib-1.0.jar)之外,还使用 ​​Maven Jar 插件在my-lib项目中使用分类器(例如: my-lib-1.0-pda.jar )生成单独/专用工件或 Maven 程序集插件过滤/包含。我对这种方法不太满意,因为它污染了图书馆消费者的需求(过滤器)。

[2] - 为所有专门的客户/项目创建额外的 Maven 项目,这将“包装”“my-lib”并生成过滤的 jar 工件(例如:my-lib-wrapper-pda-1.0 ...等) . 因此,这些包装器项目将包括过滤(以生成过滤后的工件)并且将仅依赖于“my-lib”项目,而客户端项目将依赖于my-lib-wrapper-xxx-1.0而不是my- lib-1.0. 这种方法可能看起来有问题,因为即使这样会使“my-lib”项目完好无损(没有额外的分类器和工件),基本上会使项目数量增加一倍,因为对于每个客户项目我都会有一个库,只是为了收集需要的“my-util”库中的类(“my-pda-app”项目需要“my-lib-wrapper-for-my-pda-app”项目/依赖项)。

[3] - 在每个使用该库的客户端项目中(例如:my-pda-app)添加一些专门的 Maven 插件来修剪(在生成最终工件/包时)不需要的类(例如:maven-assembly -plugin、maven-jar-plugin、proguard-maven-plugin)。

以“Maven 方式”解决此类问题的最佳实践是什么?

0 投票
6 回答
13192 浏览

maven-2 - 使用 CI/Hudson 支持为多个环境 [prod、test、dev] 生成工件的 Maven 最佳实践?

我有一个项目需要部署到多个环境(产品、测试、开发)中。主要区别主要在于配置属性/文件。

我的想法是使用配置文件和覆盖来复制/配置专门的输出。但是如果我必须使用专门的分类器生成多个工件(例如:“my-app-1.0-prod.zip/jar”、“my-app-1.0-dev.zip/jar”)或者我应该创建多个项目,每个环境一个项目?!
我应该使用 maven-assembly-plugin 为每个环境生成多个工件吗?无论如何,我需要一次生成所有它们,所以它会显示配置文件不适合......仍然感到困惑:(

任何提示/示例/链接都将受到欢迎。

作为一个附带问题,我还想知道如何在 CI Hudson/Bamboo 中实现这一点,以便为所有环境生成这些生成的工件并将其部署到它们的适当服务器(例如:使用 SCP Hudson 插件)?