在IDEA上部署Web項(xiàng)目至Tomcat上枢步,雖然Facets和Artifacts都配置完備乾忱,然而webapp
中的內(nèi)容卻無法被構(gòu)建進(jìn)相應(yīng)的目錄中屉更,其原因在于iml
文件。
1. 項(xiàng)目結(jié)構(gòu)
pom.xml
中配置打包方式<packaging>war</packaging>
-
part2-web
毯侦,無web.xml
-
spring-mvc-learning
西壮,有web.xml
2. Facets配置
Facets用于配置Web項(xiàng)目結(jié)構(gòu),用于之后的Artifacts中:
-
Deployment Descriptors
: 配置web.xml
文件位置 -
Web Resource Directories
: 配置webapp
目錄叫惊,其中包括css/js/jsp
等資源
具體配置如下:
-
Facets:
part2-web
-
Facets:
spring-mvc-learning
3. Artifacts
-
Artifacts:
part2-web
Output directory:PARENT_FOLDER/part2-web/target/part2-web-1.0-SNAPSHOT
-
Artifacts:
spring-mvc-learning
Output directory:PARENT_FOLDER/spring-mvc-learning/target/spring-mvc-learning-1.0-SNAPSHOT
以下說明以part2-web:war exploded
為例:
通常在Modules中款青,每個(gè)module的Compiler output選擇的都是Use module compile output path,其對應(yīng)配置大致如下:
-
Output path:
PARENT_FOLDER/part2-web/target/classes
-
Test output path:
PARENT_FOLDER/part2-web/target/test-classes
Available Elements:
Available Elements中的part2-web
霍狰,包含以下幾部分:
-
'part2-web' compile output
: 來源于Modules中配置的Output path/Test output path
相關(guān)內(nèi)容抡草。可雙擊或右鍵選擇Put into WEB-INF/classes
加入到左邊的Output Layout
中 -
Maven: **
: 來源于Libraries中module(part2-web
)所依賴的jar
包蔗坯】嫡穑可選擇全部所依賴的jar
包,然后右鍵選擇Put into WEB-INF/lib
加入到左邊的Output Layout
中 -
Web facet resources
: 來源于Facets中配置的內(nèi)容宾濒,如:web.xml
腿短,webapp
包含的資源』婷危可雙擊或右鍵選擇Put into Output Root
加入到左邊的Output Layout
中
對于META-INF/MANIFEST.MF
文件會(huì)在編譯后生成橘忱。
part2-web:war
引用的是part2-web:war exploded
,可以不需要卸奉。
4. iml
iml
文件中的配置钝诚,關(guān)系到Facets所配置的內(nèi)容是否會(huì)被加入到PARENT_FOLDER/part2-web/target/part2-web-1.0-SNAPSHOT
/PARENT_FOLDER/spring-mvc-learning/target/spring-mvc-learning-1.0-SNAPSHOT
目錄下
part2-web
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="web" name="Web">
<configuration>
<webroots>
<root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
</webroots>
<sourceRoots>
<root url="file://$MODULE_DIR$/src/main/java" />
<root url="file://$MODULE_DIR$/src/main/resources" />
</sourceRoots>
</configuration>
</facet>
</component>
</module>
spring-mvc-learning
<?xml version="1.0" encoding="UTF-8"?>
<module version="4">
<component name="FacetManager">
<facet type="web" name="Web">
<configuration>
<descriptors>
<deploymentDescriptor name="web.xml" url="file://$MODULE_DIR$/src/main/webapp/WEB-INF/web.xml" />
</descriptors>
<webroots>
<root url="file://$MODULE_DIR$/src/main/webapp" relative="/" />
</webroots>
<sourceRoots>
<root url="file://$MODULE_DIR$/src/main/java" />
<root url="file://$MODULE_DIR$/src/main/resources" />
</sourceRoots>
</configuration>
</facet>
</component>
</module>
5. 部署
-
part2-web
對應(yīng)的Application context
為/
-
spring-mvc-learning
對應(yīng)的Application context
為/mvc
然后運(yùn)行tomcat即可