IDEA MAVEN 项目 打包文件到指定目录

像上一篇文章,我们提到的,IDEA MAVEN struts项目中,如果我们把 struts.xml 文件放在 src 目录下,编译的时候,将无法打包到 *\WEB-INF\classes* 路径下,运行程序的时候自然就会报错(404的错误,如下图:)

建议大家先看目录,再按步骤操作。重点内容

1. struts.xml 文件无法打包到 \WEB-INF\classes\

IDEA MAVEN 项目 打包文件到指定目录_第1张图片

2. 无法打包 struts.xml 文件 导致运行报错

IDEA MAVEN 项目 打包文件到指定目录_第2张图片

控制台异常信息,见附录。

3.MAVEN项目 打包到指定路径 解决方案

设置步骤如下:

FILE -> Project Structure -> Artifacts -> 选择运行的方式 -> 找到 \WEB-INF\classes\ 路径
-> 点击 + 号 -> 选择 File -> 找到 struts.xml 文件 -> ok ,

这样我们便可以设置 将 指定文件 打包到指定目录了。

IDEA MAVEN 项目 打包文件到指定目录_第3张图片

IDEA MAVEN 项目 打包文件到指定目录_第4张图片

4.设置后,查看打包结果

IDEA MAVEN 项目 打包文件到指定目录_第5张图片

5.附录

找不到 struts.xml ,控制台报错如下:

 org.apache.catalina.LifecycleException: Failed to start component [org.apache.catalina.webresources.StandardRoot@4347694b]
    at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:441)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)
    at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4758)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4893)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:740)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:716)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:703)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:620)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1832)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)
    at java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:112)
    at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:530)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:429)
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1622)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:304)
    at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1172)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1394)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1398)
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1366)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: The main resource set specified [D:\MyProject\java\_project\mavenstruts2\target\mavenstruts2] is not valid
    at org.apache.catalina.webresources.StandardRoot.createMainResourceSet(StandardRoot.java:749)
    at org.apache.catalina.webresources.StandardRoot.startInternal(StandardRoot.java:706)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
    ... 22 more

你可能感兴趣的:(Java框架,IDEA)