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

0 投票
3 回答
31495 浏览

java - 如果我将 maven-war-plugin 配置为在缺少 web.xml 时不会失败,为什么缺少 web.xml 会失败?

这是一个挑战:为什么这个构建失败了?

我已将 Maven 的 maven-war-plugin 配置为不会在缺失的 web.xml 文件上失败,看来:

但是尽管有这种配置,它仍然像这样失败:

我实际上没有 web.xml,所以我需要它来组装没有它的战争。

我尝试在配置中添加一个伪造<webXml>none</webXml>的,但这并没有改变任何东西......

我错过了什么?

0 投票
1 回答
1401 浏览

maven - 从战争中排除 META-INF 目录

我知道我的问题可能看起来很奇怪,但是我怎样才能从战争中排除整个 meta-inf 目录呢?我试过了:

我也试过:

我需要这个的原因是因为我正在尝试生成一个存档,它将成为已部署应用程序的一种补丁 - 所以我不想覆盖不必要的文件。

0 投票
2 回答
4797 浏览

java - Maven War 插件中的过滤

我不了解 Maven 战争插件的以下过滤器配置。有人可以解释一下,他们在做什么吗?我用第一个示例和第二个示例标记了代码

0 投票
2 回答
919 浏览

maven - Clover 插件完成后如何恢复 Maven project.build 变量?

我正在尝试将集成测试添加到一个大型 Maven 项目中。这是所需的事件顺序:

  1. 清理现有的工件。
  2. 解决依赖关系并构建项目。
  3. 通过 Surefire 插件运行单元测试。
  4. Clover 插件的分叉生命周期。
  5. --- 使用 Clover 插件的仪器源。
  6. --- 修改 Clover 的 project.build.directory 和 project.build.finalName。
  7. --- 在新目录中构建 Clover 检测项目。
  8. --- 通过 Surefire 插件运行 Clover 检测单元测试。
  9. --- 从 Clover 检测单元测试中检查代码覆盖率。
  10. ---将 project.build.directory 和 project.build.finalName 重置为原始值。
  11. --- 结束分叉生命周期(Clover 仅通过“测试”阶段分叉)。
  12. 将项目打包为 WAR 文件。
  13. 通过 Tomcat7 插件在本地托管项目 WAR 文件。
  14. 通过 Surefire 插件对 Tomcat7 实例运行集成测试。

除了第 9 步(因此提出问题)之外,所有这些都按预期工作。相反,构建目录仍然设置为 Clover 版本,并且项目名称附加了“-clover”。我还发现,当“MyProject-clover.war”由 Tomcat7 托管时,它无法按预期运行(在浏览器中返回 404 错误)。

即使它确实有效,我们也不需要/想要我们正在测试的 WAR 文件中的 Clover 检测,因为集成测试不会触及任何生产代码(它是 src/test/java 下的所有 Selenium UI 内容)与本地托管的页面而不是生产代码本身进行交互)。

如前所述,这是一个包含数百个依赖项和数十个插件的大型项目。我相信以下内容与我的问题有关,但如有必要,我可以挖掘更多内容(发布整个 pom 文件似乎不合理)。

这是 Clover 插件的 pom 配置:

这是 WAR 插件的 pom 配置:

这是 Tomcat7 插件的 pom 配置:

这是我运行“mvn clean install -Dmaven.clover.skip”时的当前(期望)行为:

这是我运行“mvn clean install”时的当前(不希望的)行为(注意 maven-war-plugin 列出的路径和来自 maven-source-plugin 的警告消息:

在 Clover 的测试阶段完成执行 maven-clover2-plugin:check 目标后,我该怎么做才能确保 {project.build.directory} 和 {project.build.finalName} 值重置为其原始值分叉的生命周期?

我已经尝试浏览CloverWAR插件和Tomcat7的在线手册。我没有看到任何可以用来恢复由 Clover 更改的构建变量的设置。我总是可以对我的 pom 文件中的路径进行硬编码,但我更喜欢不那么脆弱的解决方案。

0 投票
0 回答
123 浏览

maven - 如何使从 Maven-WAR 插件创建的 JAR 文件进入构建路径

我已经使用 Maven -war 插件从另一个参考 WAR 创建了一个 JAR。现在这个 JAR 在目标文件夹中可用。我的问题是我必须使用目标文件夹中创建的 JAR 中可用的类,但我无法从 JAR 中获取类。

是否可以通过 POM 使创建的 JAR 在类路径中可用。我的 maven WAR 插件如下所示。

0 投票
1 回答
4564 浏览

spring - 如何在 Spring 中从外部 Jar 自动装配 @service

我正在使用 Maven 完全基于 Java 配置开发两个基于 spring 的应用程序(Ex app1 和 app2),并且没有 XML 配置。通过 Maven -WAR 插件,我创建了 app2 的 Jar 引用,并使用mvn install:install file我将 app2 jar 与 app1 绑定。app2 - 它用于从数据源获取信息。

我已经在 app1 实现类中自动连接了 app2 服务,以获取@Service在 app2 应用程序中注释的详细信息。

我的第一个疑问是:

app1 和 app2 都有单独的 AppConfig.java 文件。是否可以简单地自动装配其中一个@ServiceJar 格式的文件,或者我需要将 App2 的 AppConfig java 文件定义或导入到 App1 的 AppConfig.jave 文件中。

我尝试使用简单的自动装配外部 JAR@Service类并以错误结束。

@Service请帮助我将外部 Jar 自动连接到实现类需要做些什么。

下面是我的 App1 存储库类

VehicleService可在外部 Jar 中使用。

车辆服务类:

0 投票
1 回答
5870 浏览

java - Maven - maven-war-plugin 生成 jar 并将其安装到 maven 本地存储库

我在我的构建中使用 maven-war-pluginpom.xml来生成一个与我的文件jar并行的文件。我的构建是在目标目录中创建和文件。并且只有文件安装到本地存储库。有没有办法将创建的文件也推送到本地存储库。下面是我的 pom.xml 的片段warjava web projectmavenwarjarwarjar

提前致谢!

pom.xml 内容:

0 投票
1 回答
205 浏览

java - Maven: creating a war with a ROOT dir

I have always (for the purposes of vhost configuration in apache and tomcat) deployed my web app into tomcat as follows by extracting a tar.gz file which is built by ant;

and so this is what production expects.

Having recently moved to maven for the build system for same app, I'm finding it impossible to achieve the above with my war to the point where I'm starting to think I've got the wrong approach. I want my war to explode with a top level ROOT directory such as;

Is it possible to tweak the war builder plugin to accomplish this?

0 投票
2 回答
461 浏览

google-app-engine - Appengine Maven 插件 - 端点目标 - 对 .discovery 文件启用过滤

按照本指南,我在我的 Maven 项目中实现了 Google Cloud Endpoints

这是我的 pom.xml 的属性

这是我在 pom.xml 中的 maven-war-plugin 配置

这是我的 appengine-web.xml 文件的头

这是生成的数据

在此处输入图像描述

.discovery文件 在创建过程中无法解决 maven 属性的问题

mystore-v1-rest.discovery

mystore-v1-rpc.discovery

为什么这个文件没有像 WEB-INF 文件夹中保存的任何其他文件一样被过滤?

我在许多文件(在 WEB-INF 父文件夹下)中使用 Maven 变量,并且值被替换而没有问题。

如何调整我的配置以允许过滤.discovery文件?

我认为(在 lib 生成期间)application从 appengine-web.xml 获取值而不解析该值,并且在 Maven 构建期间,不应用过滤。

我已经尝试添加<filtering>true</filtering>到资源配置中,但没有成功

--- 编辑 25/01/2014 ---

在收到一些建议后,我需要澄清一个我忘记在原帖中写的东西。

该问题与endpoints_get_discovery_doc

这是 Maven 目标的日志

该文件\target\generated-sources\appengine-endpoints\WEB-INF/mystore-v3-rpc.discovery由端点目标生成,未过滤。

即使具有过滤属性

生成的文件不会被过滤。

可能问题是如果文件直接写入${project.build.directory}/generated-sources/appengine-endpoints文件夹,文件没有过滤?

0 投票
1 回答
495 浏览

java - 为什么使用 maven-war-plugin 没有将键与“WEB-INF/classes/META-INF/MANIFEST.MF”合并?

我正在构建一个应用程序,然后在 MANIFEST.MF 文件中合并一些自定义键:

我有 2 个配置文件,生产配置文件使用以下资源配置:

默认的 MANIFEST.MF 位于src/main/resources/all/META-INF/MANIFEST.MF,应用作基础。

我期待什么?

我希望 MANIFEST.MF 可以myproject.war/WEB-INF/classes/META-INF/MANIFEST.MF根据提供的值更新“Build-Time”和“Build-Revision”。然后我将能够在运行时访问 MANIFEST.MF 文件以检索“Build-Revision”键并处理缓存内容。

相反会发生什么?

相反,会发生 MANIFEST.MF 在内部创建myproject.war/META-INF/MANIFEST.MF并更新了值,并且在该WEB-INF位置只有 MANIFEST.MF 的副本,没有更新任何键。

为什么WEB-INF/classes/META-INF/MANIFEST.MF没有通过maven-war-plugin更新?