问题标签 [maven]

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 回答
52816 浏览

maven - 复制资源时完全搜索和替换源文件中的字符串

我有一些使用包前缀的 java 源文件(它们正在模拟一些 JDK 类)。我使用这些带有前缀的文件来运行一些单元测试。如果测试通过,我想生成一个包含源文件但从所有 java 文件中删除包前缀的 jar。

我正在使用 Maven 进行构建。有谁知道这样做的方法?本质上,我想要的是资源插件过滤功能,但它可以进行正确的搜索和替换(如:s/my.package.prefix.//g),而不是过滤 ${vars}。

0 投票
3 回答
23299 浏览

java - Maven 编译混合 Java + Groovy 1.7 项目,使用 gmaven-plugin

根据前两个答案:maven dependencies groovy。我正在尝试使用 org.codehaus.gmaven 的 GMaven-plugin 使用 Maven 编译一个混合的 Java 6 + Groovy 项目。直到昨天,我们还在使用旧1.6.0版本的 Groovy(在我们终于让它工作后从未改变过它),但既然1.7.0现在稳定了,我想我们会切换到那个版本。

要是事情就这么简单就好了。我现在遇到的问题似乎有两个方面:

  • Groovy 1.6不知何故仍然被选为默认值。(如下面的堆栈跟踪所示)
  • groovy:generateStubs 因构建错误而停止:意外节点:节点 [7:1,64,ANNOTATIONS]

有谁知道如何解决上述两个问题,或者可以提供一个工作 pom 来编译与 MavenJava 6代码混合的代码?Groovy 1.7

关于使用 gmaven / groovy.maven / groovy.maven.gmaven 编译旧版本的 Groovy 有很多令人困惑/自相矛盾/过时的文档,这些文档现在真的无济于事..

作为参考,这是我的 pom.xml 和 Maven -e 输出的一部分:

堆栈跟踪:

0 投票
9 回答
49399 浏览

maven - 从 Maven 启动 H2 数据库服务器?

假设我想为我的集成测试创建和使用 H2 数据库。

Maven 有一个运行测试的命令:mvn test.

有没有办法告诉 maven 为测试启动 H2 数据库服务器并在完成后停止它?

我想这类似于我通过 Maven 命令 ( mvn tomcat:run) 运行 tomcat 的方式。

抱歉,如果这个问题是荒谬的,我仍在思考新概念。

0 投票
1 回答
364 浏览

java - 关于maven的问题

我在这里阅读了一些关于以前 maven 问题的有用帖子,我目前对学习 maven 非常感兴趣(因为我喜欢它,因为我的老板要求我这样做)。我目前正在阅读 [this][1] 书,并且正在通过示例进行工作。这是一本简单的书,但里面有一些错误(微不足道的错误),但是对于像我这样的新手来说很难发现,一旦发现它就可以轻松修复。有没有其他书更好地从上到下理解maven?

问题的第二部分是与本书中的一个例子有关,也许一个简单的解释可以解决我的疑问。

事情是这样的,我simple-weather在java中做了一个项目,它从雅虎天气服务器检索天气状况,给定它返回天气信息的特定邮政编码。

然后我做了一个'simple-webapp'(使用maven以及上面我忘了提到的那个),它基本上是一个web项目,它已经有一些默认的servlet和maven,它什么都不做。

我有一些parent-project我想将这两个项目合并为一个,所以我制作了一个 pom.xml,它有 2 个模块,1 个用于检索信息(java 项目),另一个用于在网络上显示它(网络应用程序)。

我最终使一切正常,但奇怪的是..如果我让 webapp 显示任何字符串“名称”,让我们说然后独立构建它,它确实会打印该字符串。但是,当我将 webapp 放入“父项目”并将此字符串更改为“name1”并将其构建为 sa partent-project 子模块时..没有任何变化..

所以我回到正题,因为 simple-webapp 依赖于 simple-weather 我不能再单独构建它,所以现在如果我想对 webapp 进行一些更改.. 在“parent-”之外修改 webapp项目”在那里构建它,然后将其粘贴回父项目,然后更改将应用​​,为什么会这样,为什么我不能直接更改 servlet 内容/或在 webapp 中添加另一个作为“父项目”的一部分-项目”?

谢谢..我知道这是一个又长又无聊的问题,但我只是想学习一些东西,没有比这里更好的地方了:D

编辑 - 这里是每个项目的 POM 文件:

1. 简单父 pom.xml

2.简单天气pom.xml

3. simple-webapp pom.xml

0 投票
1 回答
247 浏览

maven - 实现基于 maven 的安装程序

在maven 用户列表中已经询问过类似的问题,但我有类似的情况。

我有一些服务,打包为 .WAR,由 maven 构建。但是,这个 .WAR 文件需要定制:我需要根据用户输入以不同的方式打包它。基本上,用户应该自己选择组件,他想添加到WAR中,并为这些组件定义一些简单的配置。

我需要做的是:

  1. 创建一个“轻量级”安装程序,它不会包含任何 maven 工件(或者,如果这不可能,则包含所有这些 =“重量级”安装程序)。
  2. 当最终用户启动安装程序时,会要求他提供要打包的组件列表(=复选框)
  3. 对于每个组件,安装程序都会询问配置选项(然后保存为 .property 文件,每个组件一个)
  4. 然后,安装程序仅获取所需的工件(由用户选择 + 那些是强制性的),并将这些工件中的属性文件替换为步骤 3 中的属性文件(或将它们放入“类/”)。
  5. 最后,它创建即用型 WAR 包并(可选)在后台启动 tomcat(或码头)。

IzPack 仅有助于解决第 2 步。但是有没有通用的解决方案呢?

0 投票
17 回答
57536 浏览

java - 为什么没有人使用 make for Java?

我见过的几乎每个 Java 项目都使用 Maven 或 Ant。它们是很好的工具,我认为几乎任何项目都可以使用它们。但是发生了什么?它用于各种非Java项目,可以轻松处理Java。当然,如果你使用 Windows,你必须下载 make.exe,但是 Ant 和 Maven 也没有随 JDK 一起提供。

与 Java 一起使用时,make 是否存在一些基本缺陷?仅仅是因为 Ant 和 Maven 是用 Java 编写的吗?

0 投票
1 回答
9225 浏览

java - 配置 Maven 2 以在编译阶段打印出 javac 命令

有什么方法可以强制 Maven 2 (>2.0.10) 打印它正在执行的实际 javac 命令。即使我们使用 MAVEN_OPTS 提高了最大值,我们仍然会耗尽内存。我希望能够看到正在执行的实际命令内存不足。

我尝试在 pom 文件的插件管理部分使用下面的详细设置,但这似乎没有给我 javac 命令:

0 投票
2 回答
584 浏览

java - Maven - 对所有用户输入自动响应“是”

目前我有一个 grails/maven 项目。现在我正在将我的 grails proj 升级到 1.2.1。问题是升级需要用户输入,如果我的 CI 服务器尝试构建它,它将停止询问用户是否要升级某些插件。

有没有办法告诉 maven 对所有用户输入响应“y”?

0 投票
3 回答
274 浏览

java - Eclipse 不断将我的 web 项目重新部署到 tomcat

按照这个问题(简而言之:我用 maven 创建了一个 web 项目,并且我正在用 eclipse 将它部署到 tomcat)。

Eclipse 正在不停地重新部署和重新部署我的项目。该项目似乎有效,但这很烦人。一开始我以为eclipse在我编辑后急切地部署了项目,但即使我不触摸键盘也会发生这种情况。

有任何想法吗?

0 投票
32 回答
175046 浏览

java - Maven 构建失败:“无法在以下位置找到 Javac 编译器:jre 或 jdk 问题”

我将 JAVA_HOME 设置为:

运行后maven install,我从Eclipse收到此消息:

原因:

我确定这是棘手的部分

请确保您使用的是 JDK 1.4 或更高版本,而不是 JRE

当我运行配置时,它设置为 JRE6。如何将其更改为已安装的 JDK 1.6?

我什至尝试修改插件:

我仍然得到同样的错误。

我使用 Eclipse Maven 插件。如何在 Eclipse 中从 JRE 更改为 JDK?