问题标签 [maven-jar-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 - maven release:prepare 跳过 test-jar
我正在使用 Maven 版本。3 使用以下插件生成带有测试的分离 *.jar 文件。
我的发布插件配置如下所示:
在单独的 jar 中生成测试类可以正常工作,直到我使用:
当我发布时,我的测试罐没有创建:
释放输出:
我也尝试使用DskipTests但也没有成功
或者
如何在发布期间生成我的测试罐?为什么会被跳过?
编辑
我发现只有当我有活动的发布配置文件时才会出现这个问题。我在任何父 pom 中都找不到此配置文件。它来自哪里?来自 maven-release-plugin 定义?
解决
我在 hudsons .m2/settings.xml上找到了配置文件发布:
我只需要删除maven.test.skip,现在一切正常。
maven - 为什么 Maven JAR 插件不包含某些资源?
我有一个企业应用程序,正在从 Ant 构建转换为 Maven。它几乎完全转换了;这是我需要解决的最后一件事。该应用程序被打包为一个 EAR 文件,该文件包含两个 WAR,并具有一个 JAR 模块,该模块提供该应用程序的所有核心功能。
我正在使用 Freemarker 模板库为应用程序发送的自动电子邮件生成消息正文等。Freemarker 需要将其 *.ftl 模板文件放在类路径中,因为这是核心应用程序功能,并非特定于一个 WAR 或其他,它需要在 JAR 中。
定义 JAR 的 Maven 模块具有以下 POM:
*.ftl 文件位于 src/main/resources/template/,其中一些位于 template/ 的子目录中。在 src/main/resources 中还有其他文件——一些 .properties 和一些 .xml,一些在根目录下,一些在目录结构下。
当我在这个模块(或父模块)上运行包阶段时,作为构建过程的一部分创建的目标/类目录包含模板目录,该目录又包含所有 *.ftl、*.xml 和 * .properties 具有适当目录结构的文件。如果我手动 JAR 这个目录,一切正常。
这就是奇怪的地方,我迷路了:当 maven-jar-plugin 创建 JAR 时,它包括 XML 和属性文件,但是 JAR 中完全没有模板目录,并且找不到它的内容。
正如您在上面看到的,我尝试明确包含 **/*.ftl。这没有什么区别;我可以排除整个“包含”标签,我得到完全相同的行为。
我正在使用 Maven 3.0.5 和 maven-jar-plugin 2.4。
android - Maven-android-jarsigner 签名失败
我正在尝试为该核心应用程序签署一个核心应用程序和一个测试应用程序。
我收到了错误:
未能在项目测试中执行目标 com.jayway.maven.plugins.android.generation2:android-maven-plugin:3.4.1:internal-integration-test (default-internal-integration-test):测试运行未能完成:权限拒绝:从 pid=14383,uid=14383 开始检测 ComponentInfo{packagename.core.tests/android.test.InstrumentationTestRunner} 不允许,因为包 packagename.core.tests 没有与目标 packagename.core 匹配的签名
然后,我尝试使用此代码和一个名为 my-keystore.keystore 的密钥库将 jarsigner 插件添加到我的 pom.xml 中,该密钥库与项目的 pom.xml 位于同一目录中这是 pom.xml 代码摘录:
现在,运行 mvn clean install 时出现错误:
无法执行目标 org.apache.maven.plugins:maven-jarsigner-plugin:1.2:sign (signing) on project projcore: Failed execution '/bin/sh -c cd /path/projcore && /usr/lib/jvm/ java-6-sun-1.6.0.33/jre/../bin/jarsigner -sigalg MD5withRSA -digestalg SHA1 -keystore my-key.keystore -storepass ''-keypass'' /path/core/target/projcore-1.7.8.apk my_key'
maven - Java Maven 项目作为目录而不是 jar 出现在另一个项目中
所以,我创建了一个 Spring Maven 项目,一个 Dao 项目,效果很好。所有代码都在正确的位置,所有单元测试都运行,我可以进行 mvn clean install。我可以在目标目录中看到有一个构建 jar,其中的所有内容看起来都很好。我还可以确认,当我检查我的本地 .m2/repository 时,我刚刚构建的最新 jar 就在那里。
这是 pom.xml 的一小部分:
现在,我正在为我的 UI 创建一个新的 Spring Maven Web 项目,这个 pom.xml 的开头如下:
同样在这个 pom.xml 文件中,我拥有的第一个依赖项之一是:
我可以在 Eclipse 中看到,当我尝试从这个 dao jar 访问类时,这似乎工作正常。当我在这里编译代码时,一切正常。而当我执行“mvn clean install”来构建这个war时,我可以看到目标目录,所有需要的类和jar都进来了,显然WEB-INF中有hibernate、logging和spring类/lib 目录。
现在这是问题出现的地方......为什么 myproject-dao 在 WEB-INF/lib 下显示为 WEB-INF/lib/myproject-dao-0.0.1-SNAPSHOT.jar 但显示为目录,而不是罐子?
当然,当我拉入其他 jar 时,它们只是 .jar 文件而不是目录。
我应该补充一点,当您在 Maven 依赖项下查看 Eclipse 项目时,所有其他 jar 的图标都将它们显示为文件。myproject-dao.jar 的图标使用文件夹/目录的图标,因此很明显正在创建一个名为“myproject-dao.jar”的目录,而不是一个将内容压缩到 jar 文件中的文件。
当我构建战争文件并部署战争时,应用程序说它在 myproject-dao.jar 目录中找不到任何类。我必须从 WEB-INF/lib 目录中删除文件夹“myproject-dao.jar”并手动复制文件“myproject-dao.jar”。然后我可以清楚地看到表示这确实是一个文件的图标。
这可能是一个简单的修复,所以如果你能帮助我,那就太好了。
回答:
我没有使用 maven-assembly-plugin。但是,我确实发现了问题所在。
我的 DAO 项目和 WEB 项目都在同一个工作空间中,并且 DAO 项目是打开的,结果 Eclipse 中显示的 maven 依赖是一个文件夹图标,而不是 jar 图标。当我关闭 DAO 项目并回顾对 WEB 项目 pom.xml 文件的 maven 依赖项时......现在它将图标显示为 jar 而不是文件夹。
所以,我所要做的就是用 maven 构建我的 dao.jar 文件,当它成功时,它就完成了。然后我必须在 Eclipse 中关闭项目。在我的 web 项目 pom.xml 文件中,该图标现在将其显示为 jar 文件,并且在构建时,它将拉入 jars。
我想如果一个人正在处理几个先前的项目,这是一个好处,你确实有机会在战争运行时查看 jar 文件中的内容。
就我而言,我知道我的 dao.jar 正在工作,所以我可以构建它,关闭项目,然后在我需要的任何地方使用该 jar。
java - Maven:输出具有任意扩展名的 JAR
我有一个 Java 项目,在mvn install
其上执行时会生成一个 JAR 文件。到目前为止,一切都很好。
在那一代之后,我想将生成的 JAR 文件重命名为具有任意扩展名的东西。例如,假设生成的 JAR 名为“Foo.jar”,我想将其重命名为“Foo.baz”
我正在尝试确定可以让我执行此操作的神奇插件组合。到目前为止,我已经尝试了以下,基于这个SO 答案:
所以,有两件事。首先,上述插件似乎并没有真正做任何事情。另外,我不清楚第二个插件试图完成什么。
我还尝试与上述插件分开在汇编中执行此操作,但效果并不好。我的程序集文件(请注意,我没有包含插件,因为它完全是样板文件):
但是,尝试运行此程序集会导致:无法创建程序集:创建程序集存档 dist 时出错:zip 文件无法包含自身
所以,在这一点上,我不知所措。经过大约一个小时的谷歌搜索,我觉得 ant 脚本是解决这个问题的方法,但我无法开始告诉你为什么它不起作用。
任何帮助表示赞赏。
java - Maven(Eclipse 插件和 mvn)不包括带有 pom.xml 设置的主类
在过去的几个小时里,我一直在努力解决这个问题,但我一无所获。我刚刚安装了 Maven for Eclipse 插件(我认为是 M2E)以及 maven,mvn。我创建了一个非常简单的 Hello World 项目,并试图让构建的 jar 运行:java -jar pimidi-0.0.1-SNAPSHOT.jar
无论我尝试什么,我总是得到同样的错误:在 target/pimidi-0.0.1-SNAPSHOT.jar 中没有主清单属性
这是我的 pom.xml:
我在 POM 的清单节点(类路径、清单位置)、不同的插件(程序集、编译等)中尝试了无数不同的选项,但均无济于事。在 Eclipse 中查看有效的 POM 时,我可以看到 maven-jar-plugin 已经包含在更高级别的 POM 中,并且省略了对项目 POM 的任何更改。
有没有人对如何使它工作有任何想法?如果这个问题缺乏细节,我深表歉意——我今晚的精神力已经失效。任何帮助将不胜感激!
maven - Build maven jar from classes no java source
I want to build a maven jar artifact from classes. I don't have source files. These classes are originally in another artifact installed locally. I use maven-dependency-plugin to unpack the classes and put them in the target folder for this project/module.
It creates the jar.. but doesn't include the classes I just unpacked. Here's my pom:
How can I include these classes into my final.jar?
maven - Maven 错误:在“useUniqueVersions”的 org.apache.maven.archiver.ManifestConfiguration 中找不到 setter、adder 或字段
我的 Maven 构建失败并显示错误消息:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-jar-plugin:2.2:jar (default-jar) on project XXX: Unable to parse configuration of mojo org.apache.maven.plugins:maven-jar-plugin:2.2:jar for parameter manifest: Cannot find setter, adder nor field in org.apache.maven.archiver.ManifestConfiguration for 'useUniqueVersions' -> [Help 1]
我的POM的相关部分:
我找不到任何与useUniqueVersions
. 问题可能是什么?
maven - Maven:不推荐从一个项目中生产两个 jar。为什么?
我想生成第二个人工制品的情况就是这样。我们在测试代码中有构建器类,我想在另一个项目中重用它们。我发现this guide-attached-tests并且效果很好。在与我的同事讨论后,我阅读了 Tim O'Brien 的这篇文章如何从一个项目创建两个 JAR(……以及为什么不应该这样做)。他写道,这样做违反了 Maven 的核心约定。
“它违反了 Maven 最重要的核心概念之一:模块化。一旦你沿着这条路走下去,你很可能会开始创建越来越多的“超级”项目,这些项目会创建多个 JAR。”
我没有看到测试罐的风险。
“不推荐这样做”或“它违反了核心约定,但它有效”的唯一声明并不能让我满意。至少 maven 提供了分类器,这些分类器正是为了从同一个 pom 中产生不同的工件。
我的问题:创建测试罐是惯例的例外,还是这种方法存在更严重的问题?
除了。使构建器类成为生产代码的一部分是我们正在讨论的另一种选择。但这不是这里的重点。
maven - 如何在 maven-jar-plugin 中使用 jar:jar 目标来构建多个 jar 文件
我们的 pom.xml 在 maven-jar-plugin 中有多个执行,目的是创建三个单独的 jar 文件。调用 mvn 并构建三个 jar 的方法是什么?
目前
仍然只创建一个罐子。