对于Idea开发者来说,当我们使用Tomcat进行项目部署时,经常会出现war_exploded文件夹的问题。让我们从以下多个方面来看看Idea Tomcat如何除掉war_exploded:
一、配置部署路径
在Idea中新建Web Application工程后,在“project structure”的“project settings”下“Artifacts”处,点击“+”号添加一个“war”或“war exploded”,并选择输出的位置。
<?xml version="1.0" encoding="UTF-8"?>
<artifact name="SpringMVC" outputDirectory="D:/IdeaProjects/SpringMVC7/target"
>
<module name="SpringMVC7" webFacet="SpringMVC7" />
<properties />
<outputPath>D:IdeaProjectsSpringMVC7targetSpringMVC.war</outputPath>
<rootArtifact>true</rootArtifact>
</artifact>
这样部署的时候,war包会被输出到你配置的位置。
二、关闭自动部署
在“Settings”里找到“Build, Execution, Deployment” -> “Deployment” -> “Options”,去掉勾选“Upload changed files automatically to the default sever”。
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="DeploymentOptions">
<ServerConfiguration id="Tomcat-8.5" path="/" serverName="Tomcat-8.5" />
<option name="myServerConfig" value="Tomcat-8.5" />
<option name="openInBrowser" value="false" />
<option name="uploadChangedFiles" value="false" />
<option name="automaticUploadDelay" value="2000" />
<option name="automaticUpload" value="false" />
</component>
</project>
这样关闭自动上传后,我们更改的代码将不再自动上传到Tomcat服务器中去。
三、手动部署
手动部署是一种较为笨拙的方式,但对于开发者来说,这可能更安全、更方便。
在Tomcat/webapps下新建应用目录,并在其中放置war文件。
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" docBase="D:TomcatwebappsSpringMVC"
path="/SpringMVC" reloadable="true" />
在Tomcat/conf/server.xml中进行配置,添加Context节点。docBase属性为war包的部署路径,path属性为应用的访问路径,reloadable则表示修改class文件后是否重新加载。
四、使用maven打包
如果你在使用maven管理项目,可以简化手动打包和管理部署的复杂度。
在pom.xml文件中加入一下插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<warSourceDirectory>${project.build.directory}/${project.build.finalName}</warSourceDirectory>
</configuration>
</plugin>
使用maven package打包后,war包会被输出到${project.build.directory}/${project.build.finalName}。
五、使用Gradle打包
也可以使用Gradle进行打包和管理部署的复杂度。
在build.gradle文件中加入以下配置:
apply plugin: 'war'
war {
baseName = 'SpringMVC'
version = '0.1.0'
}
repositories {
mavenCentral()
}
dependencies {
providedCompile 'javax.servlet:javax.servlet-api:3.1.0'
testCompile 'junit:junit:4.12'
}
执行gradle build后,war包会被输出到build/libs。
总结
以上是对Idea Tomcat如何除掉war_exploded的几种方法的介绍,通过调整我们的开发环境,简单的修改或者配置可以解决我们项目开发中遇到的许多问题,提高开发效率、质量和方便性。希望能对你有所帮助。