问题标签 [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.

0 投票
2 回答
4180 浏览

maven-3 - 未使用 Maven 在 $/user/.m2/repository 路径中默认创建 settings.xml

我在下面尝试了它的正常工作

并且一旦我尝试编译简单的HelloWorld.java程序。它给了我以下错误...

请任何人用适当的解决方案更新我。

0 投票
1 回答
223 浏览

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 版构建项目效果很好。

0 投票
3 回答
10636 浏览

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 调用它,但它仍然返回与上面粘贴的相同的异常。

0 投票
1 回答
69 浏览

java - 如何在一个阶段下令执行?

我有两个<execution>s 连接到同一阶段deploy。第一个执行是tomcat:redeploy,第二个是自定义执行,它向生产服务器发出 HTTP 请求,以验证应用程序是否真正工作。

我如何指示 maven 以这个特定的顺序执行它们?

0 投票
1 回答
861 浏览

maven - 切换到 maven3

我们在 maven2 上有几个企业项目,您认为现在切换到 maven 3 是个好主意吗?

我听说迁移并不难,但除非您要使用并行构建,否则不会有很大的改进。但是我们的构建机器已经快要窒息了,所以我认为我们不能使用它。

有人遇到过问题或重大改进吗?

0 投票
3 回答
735 浏览

maven-2 - 如何将 Gradle 项目发布到具有“可选”和“提供”范围的 Maven 存储库?

我看到 gradle 如何部署到 maven 存储库,自动生成执行它所需的 POM。对于我将设置为 true 和/或提供的依赖项,这怎么可能呢?

0 投票
5 回答
21931 浏览

maven-2 - maven 日志文件配置

如何为 Maven 构建配置日志记录?maven 生成的日志没有提供足够的信息,例如每个日志语句的时间戳。maven 在哪里/使用什么日志配置文件?

0 投票
6 回答
70945 浏览

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 客户端从存储库管理器下载快照 -> 本地存储库仍然有时间戳快照 :(

0 投票
1 回答
194 浏览

api - 我在哪里可以找到为 maven 3 编写旅行车的方法?

Maven 已从版本 2 更改为 3,因此它已将 ioc 容器从 plexus 更改为 google guice。

所以我的 maven 2 的 wagon(从 sourceforge 文件发布区域下载工件)必须重写为 maven 3 以满足 guice。是否有教程/api 描述/学习如何从 plexus wagon 更改为 guice wagon?

0 投票
1 回答
1509 浏览

testing - 使用 Maven 获取数据库密码以进行集成测试的最佳方法是什么?

我们正在使用 Maven 和 Spring,当前使用系统属性执行我们的测试并使用这一行进行测试。

过去我使用过环境变量,但我读到 Maven 中的支持正在消失,所以认为这可能是一个不好的做法。