问题标签 [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.
maven-2 - 在 Maven 项目中组装模块资源的正确方法是什么?
我有一个像这样的项目结构
module-distribution 依赖于 module-a,它们共享父 pom 并作为模块包含在该父 pom 中。
这个想法是有一个装配布局,如
其中 lib 目录包含所有项目工件,包括依赖项(即 module-a.jar 及其依赖项 jar),并且 module-a.jar 不应包含其样式目录。样式目录应该驻留在 my-final-assembly/styles 中。
我可以轻松填写 lib 目录,包括
在我的汇编文件中。但是 module-a/src/main/styles 呢?我可以
- 将其包含在 module-a 工件中(它将驻留在 module-a.jar 中)
- 不要将它包含在 module-a.jar 中。
当然,1)和2)都对我无效。在第一种情况下,我必须以某种方式从我的 module-a.jar 中提取样式目录。在第二种情况下,根本不会复制样式目录,因为仅复制工件,而不是整个目标文件夹。
我最后的手段是为样式目录内容创建一个单独的模块,并让 module-a 依赖它,但这对我来说似乎有点矫枉过正。尽管在这种情况下调整我的程序集文件以获得我想要的东西很容易。但是对于单个模块需要的一堆字体和 xmls 的单独模块?那将是可悲的,尽管如果这就是你所说的 Maven 方式,我已经准备好了。
maven-2 - maven-assembly-plugin 不添加系统范围的依赖项
这是我的 pom 文件:
当我运行 jar 时,我得到:
这是jgraphx
依赖的一部分。我错过了什么?
maven-2 - 如何抑制 maven 程序集插件跳过已添加的文件?还是允许覆盖?
几个星期以来,我一直在与 maven 搏斗,让它“正确地”部署我们的项目。
我快完成了,但我有一个顽固的小问题:
当我使用具有“目录”目标的 maven 程序集插件时,如
mvn assembly:directory
我得到很多控制台输出,如下所示:
[INFO] tomcat/conf already added, skipping
[INFO] tomcat/conf/Catalina already added, skipping
[INFO] tomcat/conf/Catalina/localhost already added, skipping
[INFO] tomcat/webapps already added, skipping
我编写了自己的程序集描述符,基本上将几个 FileSet 复制到部署目录中的各个子目录中。每当将来自一个 FileSet 的文件复制到另一个 FileSet 已经创建基本目录结构(以及一些可以覆盖的“默认”文件)的位置时,就会出现上述消息。
所以,我很难弄清楚:
我该如何 1)抑制这些消息(但只有“已经添加”的消息)或 2)允许覆盖?
maven-2 - Maven Assembly Plugin - 安装创建的程序集
我有一个仅由文件组成的项目。我想将这些文件打包成一个 zip 并将它们存储在一个 Maven 存储库中。我已将程序集插件配置为构建 zip 文件,并且该部分工作正常,但我似乎无法弄清楚如何安装 zip 文件?
另外,如果我想在另一个工件中使用这个程序集,我该怎么做?我打算调用依赖项:解包,但我在存储库中没有要解包的工件。
如何将 zip 文件放在我的存储库中,以便我可以在另一个工件中重新使用它?
家长会
子 POM
我把名字过滤掉了。这个 POM 正确吗?我只想将特定虚拟主机的文件捆绑在一起。
谢谢,
沃尔特
maven-2 - Maven 程序集。将每个具有传递依赖项的依赖项放在自己的目录中?
我有一个由几个模块组成的 Maven 项目。这将部署在客户端计算机上,将涉及安装 Tomcat,并将使用 NSIS 进行安装程序。有一个单独的应用程序可以监控 tomcat 并可以重新启动它、执行更新等。
所以,我的模块设置如下:
所以,我需要创建一个安装程序。我正计划创建另一个模块,即安装程序。这是我拥有 tomcat 目录的地方,我希望 maven 能够“组装”所有内容,然后运行 NSIS,这样我就可以创建最终的安装程序。
但是,我需要将监视器 jar 文件放在一个目录中,然后将所有监视器依赖项放在 lib/ 目录中。最终的目录结构应该是:
在 client-web\WEB-INF\lib 目录中,我们将在它被分解后拥有所有 client-web 的依赖项。那行得通,我有 .war 文件。我遇到的问题是让监视器模块依赖项独立于客户端 Web 模块的依赖项。
我试图只创建安装程序模块并制作监视器和客户端 Web 依赖项,但是当我使用依赖项复制时,它给了我一切。不是我想要的。
我倾向于创建一个名为 monitor-assembly 的新模块,或者给我一个包含我需要的目录格式的 zip 文件,但那是另一个模块。
有人可以帮我用正确的方法来完成这个吗?
谢谢!
maven-2 - 如何让 jetty-maven-plugin 部署从存储库中检索到的战争?
我正在为一个大型 Web 项目设置一个集成测试模块。集成测试模块与 web 项目本身是分开的,它有自己的 pom.xml 文件。
这个想法是使用 maven-soapui-plugin 发送请求并验证响应。设置soapui-plugin 并不麻烦。但是,我无法弄清楚如何告诉 jetty-maven-plugin 从远程存储库部署战争。
如果我理解正确,jetty-maven-plugin 有一个名为 '<webApp>/<webApp>' 的属性,它可以让我指定要部署的 war 文件。问题是模块本身中不存在war文件。
我听说我可以使用 maven 程序集插件通过项目 artifactId 从存储库中检索战争,但我还没有弄清楚我将如何去做。
这是我想要的摘要:
- 从存储库等中检索特定的战争,例如通过其 artifactId。
- 将这场战争部署到 jetty-maven-plugin(目标部署战争?)
- 让 maven-soapui-plugin 运行测试并在集成测试阶段报告结果。
我很确定我已经完成了第 3 步,但我非常不确定如何实现第 1 步和第 2 步。
任何帮助是极大的赞赏
maven-2 - Maven 程序集:包含具有不同分类器的依赖项
我想在 Maven 中构建两个不同版本的 WAR(我知道这是不行的,这就是当前情况下的方式)。在程序集描述的 WAR 版本中,我想用不同的分类器用相同的依赖项替换依赖项。例如,我希望这个程序集能够工作:
这不起作用,但我是否朝着正确的方向前进?我已经阅读了Maven 程序集页面上的所有页面以及Maven 权威指南中似乎相关的部分。任何指针都会有所帮助。
maven - maven:多模块项目组装成单个jar
我有一个多模块项目,想创建一个包含我所有模块的类的单个 jar。在我的父 POM 中,我声明了以下插件:
但是,在运行 mvn assembly:assembly 时,仅包含来自父文件夹(空)的源。如何将模块中的源包含到存档中?
java - 在 Maven 构建的 JAR 中找不到泽西消息正文阅读器
我的应用程序使用 REST (JAX-RS Jersey) 接口。当我在 Eclipse 中运行它时,一切都很好。域对象被注释,我没有使用 XML 文件进行 REST 映射。
现在我使用 maven-assembly-plugin 创建了一个独立的 JAR,它将应用程序和所有依赖项打包在一个可执行的 JAR 文件中。这似乎也有效。
但是当我启动应用程序并从服务器请求一个对象时,Jersey 抱怨说它找不到消息正文阅读器:
任何想法为什么会发生这种情况?
编辑:在我睡了一晚之后,我注意到它抱怨 JSON ......但我只使用 XML 进行序列化。奇怪的。
maven-2 - maven 程序集插件没有使用 finalName 来安装 attach=true?
我已经配置了以下程序集:
这产生了两个 zip 文件:
- 分发-prod.zip
- 分发-test.zip
我对属性attach=true的期望是,这两个 zip 文件以属性finalName中给出的名称安装。但结果是,只有一个文件安装(附加)到工件。maven协议是:
- distrib-0.1-SNAPSHOT.zip
- distrib-0.1-SNAPSHOT.zip
该插件使用的是 artifact-id 而不是属性 finalName!这是一个错误吗?
最后一个安装覆盖第一个。我该怎么做才能安装这两个具有不同名称的文件?
感谢您的调查。罗兰