问题标签 [maven-3]
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-3 - 未使用 Maven 在 $/user/.m2/repository 路径中默认创建 settings.xml
我在下面尝试了它的正常工作
并且一旦我尝试编译简单的HelloWorld.java
程序。它给了我以下错误...
请任何人用适当的解决方案更新我。
maven-2 - 不同的 maven 版本会导致额外的库包含在 WAR 文件中
我正在尝试使用 Maven 构建一个要部署到 tomcat 服务器的 war 文件,但是在构建我的 war 文件时注意到了一些奇怪的行为:
从项目文件夹运行命令时:mvn clean compile package -DskipTests
- Maven 3.0 版生成一个 12.079MB 的 war 文件(WEB-INF/lib 文件夹中有 49 个 jar 文件)
- Maven 版本 3.0 beta1 生成一个 8.7MB 的 war 文件(WEB-INF/lib 文件夹中的 31 个 jar 文件)
- Maven 2.11 版生成一个 2.3MB 的 war 文件(WEB-INF/lib 文件夹中有 3 个 jar 文件)
什么可能导致项目中包含额外的 jar 文件?可能不需要它们,因为过去使用 2.11 版构建项目效果很好。
java - 如何以编程方式调用 Maven 依赖插件
我正在尝试以编程方式调用 maven-dependency-plugin。我正在使用 Maven 3 版本。问题是当我通过 pluginManager.executeMojo(session, execution) 调用它时,我收到以下错误消息:
据我所知,maven依赖插件的解包目标唯一需要的参数是artifactItems。我使用 PluginExecution.setConfiguration() 方法设置插件配置。似乎此插件配置未正确设置。你知道为什么会抛出这个异常吗?
这是我正在使用的配置:
谢谢
我这边的一个修正。使用的 Maven 版本不是 Maven 3.0 而是 Maven 3.0-beta-1。我看到BuildPluginManager.loadPlugin()
版本 3.0-beta-1 有两个 args,而版本 3.0 中的相同方法有三个。我想知道,是否有人尝试使用 maven 3.0 或 maven 3.0-beta-1 以编程方式调用 maven 插件。我仍在尝试使用 maven 3.0-beta-1 调用它,但它仍然返回与上面粘贴的相同的异常。
java - 如何在一个阶段下令执行?
我有两个<execution>
s 连接到同一阶段deploy
。第一个执行是tomcat:redeploy
,第二个是自定义执行,它向生产服务器发出 HTTP 请求,以验证应用程序是否真正工作。
我如何指示 maven 以这个特定的顺序执行它们?
maven - 切换到 maven3
我们在 maven2 上有几个企业项目,您认为现在切换到 maven 3 是个好主意吗?
我听说迁移并不难,但除非您要使用并行构建,否则不会有很大的改进。但是我们的构建机器已经快要窒息了,所以我认为我们不能使用它。
有人遇到过问题或重大改进吗?
maven-2 - 如何将 Gradle 项目发布到具有“可选”和“提供”范围的 Maven 存储库?
我看到 gradle 如何部署到 maven 存储库,自动生成执行它所需的 POM。对于我将设置为 true 和/或提供的依赖项,这怎么可能呢?
maven-2 - maven 日志文件配置
如何为 Maven 构建配置日志记录?maven 生成的日志没有提供足够的信息,例如每个日志语句的时间戳。maven 在哪里/使用什么日志配置文件?
java - 您如何有效地处理 maven-3 时间戳快照?
现在 maven-3 确实放弃了对快照工件的 <uniqueVersion>false</uniqueVersion> 的支持,看来您确实需要使用带时间戳的 SNAPSHOTS。特别是在内部使用 maven 3 的 m2eclipse 似乎受到了影响,当 SNAPSHOTS 不唯一时,更新快照不起作用。
将所有快照设置为 uniqueVersion=false之前似乎是最佳实践
现在,切换到时间戳版本似乎没有什么大问题,毕竟它们是由一个中央关系存储库管理的,它能够定期删除旧快照。
问题在于本地开发人员工作站。他们的本地存储库很快就会通过独特的快照变得非常大。
如何处理这个问题?
现在我看到以下可能的解决方案:
- 要求开发人员定期清除存储库(这会导致很多麻烦,因为删除需要很长时间,下载所需的一切需要更长的时间)
- 设置一些脚本,从本地存储库中删除所有SNAPSHOT目录,并要求开发人员不时运行该脚本(比第一个更好,但仍然需要相当长的时间来运行和下载当前快照)
- 使用依赖:purge-local-repository 插件(从eclipse运行时确实有问题,由于打开文件,需要从每个项目运行)
- 在每个工作站上设置 nexus 并设置清理旧快照的作业(最好的结果,但我不想维护 50 多个 nexus 服务器,而且开发人员工作站上的内存总是很紧张)
- 完全停止使用 SNAPSHOTS
防止本地存储库填满硬盘空间的最佳方法是什么?
更新:
为了验证行为并提供更多信息,我设置了一个小型 nexus 服务器,构建两个项目(a 和 b)并尝试:
A:
乙:
现在,当我使用 Maven 并在“a”上运行“deploy”时,我将拥有
在本地存储库中。每次运行部署目标时都会使用新的时间戳版本。当我尝试从 nexus 服务器更新快照时也会发生同样的情况(关闭“a”项目,从本地存储库中删除它,构建“b”)
在构建大量快照的环境中(想想哈德逊服务器......),本地存储库很快就会被旧版本填满
更新 2:
为了测试失败的方式和原因,我做了更多的测试。每个测试都针对干净的所有内容运行(de/glauche 从机器和连接中删除)
- mvn 使用 Maven 2.2.1 部署:
机器 A 上的本地存储库确实包含 snapshot.jar + snapshot-timestamp.jar
但是:nexus 中只有一个带时间戳的 jar,元数据读取:
- 在 m2eclipse(嵌入式 m3 final)中运行更新依赖项(在机器 B 上)-> 本地存储库有 snapshot.jar + snapshot-timestamp.jar :(
- 使用外部 maven 2.2.1 运行包目标 -> 本地存储库具有 snapshot.jar + snapshot-timestamp.jar :(
好的,接下来尝试使用 maven 3.0.1(删除项目 a 的所有痕迹后)
机器 A 上的本地存储库看起来更好,只有一个非时间戳 jar
在 nexus 中只有一个带时间戳的 jar,元数据读取:
de.glauche a 0.0.1-SNAPSHOT
在 m2eclipse(嵌入式 m3 final)中运行更新依赖项(在机器 B 上)-> 本地存储库有 snapshot.jar + snapshot-timestamp.jar :(
使用外部 maven 2.2.1 运行包目标 -> 本地存储库具有 snapshot.jar + snapshot-timestamp.jar :(
因此,回顾一下:maven3 中的“部署”目标比 2.2.1 中的效果更好,创建机器上的本地存储库看起来不错。但是,接收器总是以许多带有时间戳的版本结束......
我究竟做错了什么 ?
更新 3
我还测试了其他各种配置,首先用人工制品替换 nexus -> 相同的行为。然后使用 linux maven 3 客户端从存储库管理器下载快照 -> 本地存储库仍然有时间戳快照 :(
api - 我在哪里可以找到为 maven 3 编写旅行车的方法?
Maven 已从版本 2 更改为 3,因此它已将 ioc 容器从 plexus 更改为 google guice。
所以我的 maven 2 的 wagon(从 sourceforge 文件发布区域下载工件)必须重写为 maven 3 以满足 guice。是否有教程/api 描述/学习如何从 plexus wagon 更改为 guice wagon?
testing - 使用 Maven 获取数据库密码以进行集成测试的最佳方法是什么?
我们正在使用 Maven 和 Spring,当前使用系统属性执行我们的测试并使用这一行进行测试。
过去我使用过环境变量,但我读到 Maven 中的支持正在消失,所以认为这可能是一个不好的做法。