问题标签 [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 程序集插件时遇到问题
我很抱歉在这里听起来很无知,但我是 Maven 的新手,并且一直在努力解决一些我确信很简单的事情。
文档说:
[...] 项目可以生成一个 ZIP 程序集,该程序集在根目录中包含项目的 JAR 工件、在 lib/ 目录中的运行时依赖项以及用于启动独立应用程序的 shell 脚本。
这正是我想做的!但我似乎无法实现它。
我的POM如下:
并且引用的 dist.xml 看起来像这样:
这在 zip 文件中实现了我想要的布局(尽管我很确定我没有以正确的方式到达那里)但是我得到了两个 jars target/
(一个在 zip 存档中,另一个在根目录中),并且两者都没有其中包括我在结果中的 mainClass 条目MANIFEST.MF
。
如果我将它更改project.packaging
为“pom”,我认为这可能是正确的,那么额外的 jar(在根目录中target/
消失了,但我收到以下警告:
...确实,我的工件不在存档中,并且仍然没有添加到MANIFEST.MF
.
有人有时间帮助初学者吗?
maven - 使用 Maven 创建一个包含所有依赖项的 zip
也许我是盲人,但是 maven 程序集插件可以创建一个包含当前 project.jar 和我所有依赖项 jar 的 zip 文件吗?“bin” id 只包含我的 project.jar 和 jar-with-dependencies 放在一个我不喜欢的 jar 中。
maven - Maven 包含另一个用于插件配置的 pom
有没有办法在 maven pom 中包含另一个 pom 或信息?
我有几个基本上不相关或有不同父 pom 的 pom。然而,对于打包,它需要有一个与所有项目相同的清单。
所以目前我有一个pom:
等等等等
我想避免将此配置粘贴到所有多个 pom 中。
那么如何在没有继承的情况下共享插件的配置呢?
谢谢
deployment - Maven 组装插件产生不可部署的战争文件
我正在使用 Spring、Hibernate、GWT 和 Maven 3 开发一个多模块项目,并尝试将战争文件分发部署到 servlet 容器(最好是 Tomcat 7 或 Jetty 8)。我使用 maven-assembly-plugin 2.2.1 创建了战争文件(我正在运行 maven 3)。在 maven 构建期间,一切正常,并创建了分发存档。
但是当我尝试部署 war 文件时,我得到了 ClassNotFound-Exceptions(例如 Spring ContextLoaderListener 等),尽管一切就绪(Web-inf/lib 等 pp.)。所以,webapp 没有启动。然后我将战争文件解压缩到 servlet 容器 webapp 目录中,一切正常......??
经过进一步调查,我遇到了以下情况:如果我使用 maven-war-plugin (!) 创建的任意 war 文件 A',请将其内容替换为我使用 maven-assembly-plugin 创建的 war 文件中的解压缩内容(让我称之为A。)我可以看到发生了两件事:
- 生成的战争文件 A' 比我的原始文件 A 小几个字节,尽管它们的内容相同
- A'的部署突然像一个魅力
这很奇怪,我完全不知道发生了什么。也许有一个问题,maven-war-plugin 和 maven-assembly-plugin 处理战争文件打包的方式不同?!我的意思是,战争只是一个具有一些预定义结构的重命名的 zip 文件......也许它与 Maven 完全无关,而是与文件编码或其他东西有关?对此有什么想法吗?我很感激任何提示,这可以帮助我调查这个......
这是我的程序集描述符
performance - 我可以让 maven-assembly-plugin 更快吗?
我有一个 Maven 多模块项目。最终目标包含了我们构建在 tarball 和 RPM 中用于分发的所有库等。这个目标使用 maven-assembly-plugin,它需要很长时间——通常是我们总构建时间的四分之一到一半。
我想我们已经在告诉 Maven 运行多线程(虽然我不肯定,也不知道如何检查)。我可以做任何其他优化来加快拆包/重新打包的速度吗?这只是使用更强大的机器的问题吗?我们的项目看起来并不大(最终结果约为 70-80 MB),但仅在这一阶段就需要一分钟多的时间。
java - 使用 Maven 创建 EAR 的 ZIP 文件
我有一个非常简单的问题......我有一个 Maven 3 项目,如下所示:
根 POM 项目 - EAR 项目:依赖于 WAR 项目 - WAR 项目
我想使用程序集插件制作一个包含展开的 EAR(包含 WAR)的 ZIP 文件。关于我应该如何做到这一点的任何建议?我应该将程序集配置详细信息放在根 .pom 还是 EAR .pom 中?
谢谢!-乔恩
maven - Maven 程序集模式匹配
我在使用文件集中的模式时遇到问题。这个显式汇编有效:
但我需要一个更通用的解决方案
我希望使用通配符表示“以 d1 结尾的目录”,我得到
我尝试了多种目录和包含组合,例如
和
有同样的错误。
plugins - Maven assembly plugin does not overwrite files during compile phase
I have defined maven assembly plugin and have set pom to execute the plugin(assembly.xml) in "compile" phase. assembly.xml - it gets the jars/files using "dependencySet" and I replace few files with my local set using "fileSet".
With Maven assembly plugin 2.2 beta 2 it would replace the files. With version 2.2 or 2.2.1 of assembly plugin, a) it says "already added, skipping" and does not overwrite. b) if I modify the phase to "generate-resources" instead of "compile" in the pom, it shows the 'already added, skipping" message and anyways replaces/overwrites the files.
Would like to know, what has changed between versions and why the phase change would make it work. Also it would be helpful if someone can explain what exactly happens in "compile" phase (that it doesn't overwrite). Is there a workaround for my issue?
Thanks in advance for the help!
Included the snippet:
plugins - Maven“无法创建程序集”问题
我使用一个非常简单的汇编描述符:
但是我一直收到以下错误:“无法创建程序集:创建程序集存档测试时出错:您必须设置至少一个文件”如果我使用 -e 执行 maven,我也会收到此消息
但!转移到“工具”目录的文件!我不明白为什么会出错,但文件在目录中...我使用“mvn assembly:single”目标
有人可以尝试解释一下吗:) 我也在另一个模块中使用了程序集插件,但它工作得很好。
classpath - 帮助在可执行 jar 文件中设置类路径
我正在尝试使用具有所有依赖项的 maven-assembly-plugin 构建一个可执行 jar。我想要jar内的/lib/目录中的依赖项,主jar在外面,配置文件在主jar的同一级别。
我的 pom.xml 是:
packagejar.xml 是:
生成的 manifest.mf 文件是:
有了这个,我得到了 mainclass 来执行,但它从来没有在 lib 中找到它需要工作的 jars。可能我缺少一些基本的东西。我还尝试在 pom.xml manifestEntries 中添加 lib/ 、lib/ .jar、/lib 和 /lib/。
有任何想法吗?
提前致谢。