wordpress 网站上传到服务器,没有网站做cpa,家居装修设计平台,阿里云上传wordpress创建Maven版的Web工程
使用命令生成Web工程
使用mvn archetype:generate命令生成Web工程时#xff0c;需要使用一个专门生成Web工程骨架的archetype(参照官网看到它的用法)
-D表示后面要附加命令的参数#xff0c;字母D和后面的参数是紧挨着的#xff0c;中间没有任何其它…创建Maven版的Web工程
使用命令生成Web工程
使用mvn archetype:generate命令生成Web工程时需要使用一个专门生成Web工程骨架的archetype(参照官网看到它的用法)
-D表示后面要附加命令的参数字母D和后面的参数是紧挨着的中间没有任何其它字符参数archetypeGroupId、archetypeArtifactId、archetypeVersion用来指定现在使用的maven-archetype-webapp的坐标
mvn archetype:generate -DarchetypeGroupIdorg.apache.maven.archetypes -DarchetypeArtifactIdmaven-archetype-webapp -DarchetypeVersion1.4第一步: 在工作空间的根目录下运行生成Web工程的命令然后按照提示执行, 不能在一个Java工程下再创建一个Web工程
Define value for property groupId: com.atguigu.maven
Define value for property artifactId: pro02-maven-web
Define value for property version 1.0-SNAPSHOT: :【直接回车使用默认值】
Define value for property package com.atguigu.maven: :【直接回车使用默认值】
Confirm properties configuration:
groupId: com.atguigu.maven
artifactId: pro02-maven-web
version: 1.0-SNAPSHOT
package: com.atguigu.maven
Y: :【直接回车表示确认】第二步:配置Maven工程生成的pom.xml文件,对创建好的Web工程做一点调整
?xml version1.0 encodingUTF-8?
!--project跟标签,表示对当前工程进行配置管理--
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd!--modelVersion标签:代表当前pom.xml所采用的标签结构,从Maven2开始就固定是4.0.0--modelVersion4.0.0/modelVersion!--当前Maven工程的坐标--groupIdcom.atguigu.maven/groupIdartifactIdpro02-maven-web/artifactIdversion1.0-SNAPSHOT/versionpackagingwar/packaging!--当前工程的名字--namepro02-maven-web/nameurlhttp://www.example.com/urlproperties!--工程构建过程中读取源码时使用的字符集--project.build.sourceEncodingUTF-8/project.build.sourceEncoding/properties!--配置当前工程所依赖的jar包--
/projectWeb工程的目录结构 将Web工程中部署到服务器
创建Servlet
第一步: 在main目录下创建java目录,在java目录下创建Servlet类所在的包的目录 package com.atguigu.maven;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
import java.io.IOException;
public class HelloServlet extends HttpServlet{protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.getWriter().write(hello maven web);}
}第二步: 在web.xml中注册Servlet
servletservlet-namehelloServlet/servlet-nameservlet-classcom.atguigu.maven.HelloServlet/servlet-class
/servlet
servlet-mappingservlet-namehelloServlet/servlet-nameurl-pattern/helloServlet/url-pattern
/servlet-mapping第三步: 在index.jsp页面中编写超链接
htmlbodyh2Hello World!/h2a hrefhelloServletAccess Servlet/a/body
/html执行Maven的构建命令
此时直接执行mvn compile命令提示错误信息,程序包javax.servlet.http和javax.servlet不存在
因为我们的Web工程用到的HttpServlet这个类属于servlet-api.jar ,所以Web工程需要导入servlet-api.jar的坐标信息 配置Web工程对servlet-api.jar包的依赖: 依赖的坐标可以根据关键词到Maven仓库查询,根据下载量选择适合的使用 !-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --
dependencygroupIdjavax.servlet/groupIdartifactIdjavax.servlet-api/artifactIdversion3.1.0/versionscopeprovided/scope
/dependency第一步: 运行mvn package命令将Web工程打包为war包(默认存放在target目录下),将war包复制到Tomcat/webapps目录下即部署到Tomcat上运行
第二步: 执行startup.bat文件启动Tomcat服务器, 通过浏览器尝试访问http://localhost:8080/pro02-maven-web/index.jsp Web工程依赖自定义的Java工程
Web工程依赖的每一个jar包对应的就是每一个Java工程,最终这些jar包会被放在Web工程的WEB-INF/lib目录下
在pro02-maven-web工程的pom.xml文件中的dependencies标签内指定被依赖的Java工程pro01-maven-java的坐标
只有Web工程依赖Java工程,没有反过来Java工程依赖Web工程
!--依赖Java工程pro01-maven-java的--
dependencygroupIdcom.atguigu.maven/groupIdartifactIdpro01-maven-java/artifactIdversion1.0-SNAPSHOT/versionscopecompile/scope
/dependency编写测试程序: 根据主体程序所在的包结构创建对应的test目录pro02-maven-web\src\test\java\com\atguigu\maven,把Java工程的CalculatorTest.java测试类复制到该目录下
!--确认Web工程依赖了junit--
dependencies!-- 使用dependency配置一个具体的依赖 --dependency!-- 要导入哪个jar包就配置它的坐标信息即可 --groupIdjunit/groupIdartifactIdjunit/artifactId!--4.0以下的版本不支持注解--version4.12/version !-- scope标签配置依赖的范围,默认值是compile--scopetest/scope/dependency
dependencies执行Maven的构建命令
测试命令 mvn test: 调用测试类的测试方法, 测试操作中会提前自动执行编译操作测试成功就说明编译也是成功的
打包命令mvn package: 在打包好的war包中,被Web工程依赖的Java工程会变成Web工程的WEB-INF/lib目录下的jar包
以列表形式查看当前Web工程所依赖的jar包信息: mvn dependency:list
# jar包的显示格式--groupId:artifactId:打包方式:version:依赖的范围[INFO] The following files have been resolved:[INFO] org.hamcrest:hamcrest-core:jar:1.3:test[INFO] javax.servlet:javax.servlet-api:jar:3.1.0:provided[INFO] com.atguigu.maven:pro01-maven-java:jar:1.0-SNAPSHOT:compile[INFO] junit:junit:jar:4.12:test以树形结构查看当前Web工程依赖的jar包信息: mvn dependency:tree
由于依赖的传递性, 在pom.xml中虽然没有依赖hamcrest-core但是它却被加入了我们依赖的列表, 原因是junit依赖了hamcrest-core
[INFO] com.atguigu.maven:pro02-maven-web:war:1.0-SNAPSHOT
[INFO] - junit:junit:jar:4.12:test
[INFO] | \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] - javax.servlet:javax.servlet-api:jar:3.1.0:provided
[INFO] \- com.atguigu.maven:pro01-maven-java:jar:1.0-SNAPSHOT:compile