如何将 Open Liberty 开发模式与我的 Maven WAR 项目一起使用,并从我的项目外部(例如从我的本地计算机)包含 JavaScript 和 CSS 文件?
How can I use Open Liberty dev mode with my Maven WAR project and include JavaScript and CSS files from outside my project (eg from my local machine)?
我有一些 JavaScript 和 CSS 文件不属于我的 WAR 模块源存储库。它们也没有打包在 Maven 依赖项中。我分别将它们解压缩到本地系统上的路径。
我如何在我的 Maven WAR 应用程序中使用这些资源并仍然利用自由 dev mode 进行快速、迭代开发?
要包含来自典型 src/main/webapp 目录以外的位置的 Web 资源,请配置 属性 和 maven-war-plugin 以及 <webResources>
参数如下:
pom.xml
...
<properties>
<webResDir>/path/to/js-css</webResDir>
<properties>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
<configuration>
<webResources>
<resource>
<directory>${webResDir}</directory>
</resource>
</webResources>
<!-- I recommend this config which does a better job of removing any deleted/outdated resources, as of v3.3.2 -->
<outdatedCheckPath>/</outdatedCheckPath>
</configuration>
</plugin>
注意事项
虽然基本思想仍然适用于早期版本,但您将获得推荐的最低版本的更好体验:
先决条件最低版本
- maven-war-plugin 的 3.3.2 版 (添加了对显示的过时 CheckPath 语法的支持)
- liberty-maven-plugin 的 3.5.2 版 (添加了对过滤 Web 资源的支持)
PLUGIN-LEVEL 配置
还要注意 maven-war-plugin 配置 应该在插件级别添加 以便 liberty 开发模式访问它, 而不是在级别在 maven-war-plugin.
下定义的执行
属性 覆盖
与一般的 Maven 项目属性一样,现在可以覆盖它:
- 在 command-line 上:
mvn -DwebResDir=/some/path ... <goals, phases>
- 在 settings.xml 中(如果您的 host-specific 位置在从该系统访问的多个项目之间共享,则特别有用),例如查看 Maven Settings documentation
参考资料
此处有更多示例:https://maven.apache.org/plugins/maven-war-plugin/examples/adding-filtering-webresources.html
我有一些 JavaScript 和 CSS 文件不属于我的 WAR 模块源存储库。它们也没有打包在 Maven 依赖项中。我分别将它们解压缩到本地系统上的路径。
我如何在我的 Maven WAR 应用程序中使用这些资源并仍然利用自由 dev mode 进行快速、迭代开发?
要包含来自典型 src/main/webapp 目录以外的位置的 Web 资源,请配置 属性 和 maven-war-plugin 以及 <webResources>
参数如下:
pom.xml
...
<properties>
<webResDir>/path/to/js-css</webResDir>
<properties>
...
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.3.2</version>
<configuration>
<webResources>
<resource>
<directory>${webResDir}</directory>
</resource>
</webResources>
<!-- I recommend this config which does a better job of removing any deleted/outdated resources, as of v3.3.2 -->
<outdatedCheckPath>/</outdatedCheckPath>
</configuration>
</plugin>
注意事项
虽然基本思想仍然适用于早期版本,但您将获得推荐的最低版本的更好体验:
先决条件最低版本
- maven-war-plugin 的 3.3.2 版 (添加了对显示的过时 CheckPath 语法的支持)
- liberty-maven-plugin 的 3.5.2 版 (添加了对过滤 Web 资源的支持)
PLUGIN-LEVEL 配置
还要注意 maven-war-plugin 配置 应该在插件级别添加 以便 liberty 开发模式访问它, 而不是在级别在 maven-war-plugin.
下定义的执行属性 覆盖
与一般的 Maven 项目属性一样,现在可以覆盖它:
- 在 command-line 上:
mvn -DwebResDir=/some/path ... <goals, phases>
- 在 settings.xml 中(如果您的 host-specific 位置在从该系统访问的多个项目之间共享,则特别有用),例如查看 Maven Settings documentation
参考资料
此处有更多示例:https://maven.apache.org/plugins/maven-war-plugin/examples/adding-filtering-webresources.html