java - 如何使用 Grunt 将 jar 文件复制到 WEB-INF/lib
问题描述
我是 Grunt 构建的新手。这里我的要求是,在使用 Grunt build 执行战争任务时,创建 WEB-INF/lib 目录并将 Jar 文件复制到其中。
下面是我的 war.js 的示例:
module.exports = {
/*
* Build a WAR (web archive) without Maven or the JVM installed.
*/
target: {
options: {
war_dist_folder: 'deploy',
/* Folder to generate the WAR into */
war_name: 'mySampleApp',
/* The name fo the WAR file (.war will be the extension) */
webxml_webapp_version: '2.5',
war_extras: [{
filename: 'WEB-INF/weblogic.xml',
data: '<?xml version = "1.0" encoding = "US-ASCII"?> \n\n\
<weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \n\n\
xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd" \n\n\
xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app"> \n\n\
<context-root>my-sample-app</context-root> \n\n\
<session-descriptor> \n\n\
<timeout-secs>1800</timeout-secs> \n\n\
<cookie-name>JSESSIONID</cookie-name> \n\n\
<cookie-path>/my-sample-app</cookie-path> \n\n\
<url-rewriting-enabled>false</url-rewriting-enabled> \n\n\
</session-descriptor> \n\n\
</weblogic-web-app>'
}],
/* the war_extras are extra files to be generated, needed since grunt-war doesn't create a weblogic.xml */
webxml_welcome: 'index.html',
/* to point web.xml to the default page */
webxml_webapp_extras: ['<login-config />\n',
'<session-config>\n \n\
<session-timeout>\n 30\n </session-timeout>\n\n\
</session-config>\n',
'<servlet>\n \n\
<servlet-name>\n MyServlet\n </servlet-name>\n\n\
<servlet-class>com.sample.servlet.MyServlet</servlet-class>\n\n\
</servlet>\n',
'<servlet-mapping>\n\
<servlet-name>MyServlet</servlet-name>\n\
<url-pattern>/maySampleApp</url-pattern> \n\
</servlet-mapping>'
]
},
files: [{
expand: true,
cwd: 'release',
/* find the source files for the WAR in the /release folder */
src: ['**'],
dest: ''
}]
}
};
请向我提供创建 WEB-INF/lib 目录并将 jar 文件复制到其中的说明。
解决方案
你有没有尝试过一些“简单”的东西(files
需要一个“数组”参数......这个特定的选项字段并没有真正记录在 grunt-war):
// ...,
files: [{
expand: true,
// better ...no cwd, "copy single file tree" @see [2]
src: ['release/*'],
dest: ''
}, // a second "files" object! (and my particular answer)
{
// expand: false, assuming/hoping for a flat *.jar structure (all in one folder)
// cwd: '', NO cwd ...
/* GET all files with "lib/*.jar" "matcher" */
src: ['lib/*.jar'],
/* ... and "destinate" into "WEB-INF/lib" */
dest: 'WEB-INF/lib'
}
] // ...
?
没有保修,没有测试,只是一个内测!:)
当您的“lib”文件夹结构过于花哨时,您必须使用epxand
and cwd
,请参阅:
[1],[2],@RobC 的评论。
当所有这些都因grunt-war 插件而失败时,我会在执行之前尝试将(罐子)复制到“release/WEB-INF/lib”中。 war
推荐阅读
- python-3.x - 为什么我在快速排序算法中出现列表索引错误。任何人都可以审查它吗
- apache-spark - 使用数据帧上的许多过滤条件创建 Spark 作业的时间很长
- r - 无法理解来自 blogdown 的错误消息
- node.js - 将 yaml 转换为 JSON 返回 ["object Object"]
- python - 尝试通过匹配行值来选择列,但返回该列中另一行的值
- java - TestNg 评估程序
- javascript - 我们可以在 VueJ 的“类型”属性中添加多个值吗?
- reactjs - React:将值从 componentDidMount 传递给 render()
- angular - 无法从商店 ngrx 获取值
- r - 使用 tidyverse 同时过滤、汇总并将结果放入同一数据框的新列中的指定位置