idea 发布web项目

时间:2021-05-05 20:06:52

关于idea 打包war文件部署web项目

  小编我从eclipse打包war文件到用idea打包war文件,今天搞了一下午终于想明白了,踩过的那些坑希望大家在学习的时候可以避免,也给自己一个记录。

打包文件冷部署

创建工程改写pom文件

   maven是开发管理项目比较好的一个框架,我们在idea中新建一个java web工程,然后选中项目右键添加maven support,在项目中就会多一个pom文件,记得在破pom文件中添加如下:

   <groupId>groupId</groupId>
<artifactId>test-web</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>

注意:重点在最后一行的 packaging 标签,

还有一点比较重要的是有可能webroot文件和系统默认的webroot文件不一样会,在package的时候会出现找不到web.xml文件的错误,这时候在pom文件中添加如下配置:

[INFO] Final Memory: 11M/155M
[INFO] ————————————————————————
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.2:war (default-war) on project test-web: Error assembling WAR: webxml attribute is required (or pre-existing WEB-INF/web.xml if executing in update mode) -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]

 <plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<!-- 设置WebContent目录为Web目录 -->
<webappDirectory>web</webappDirectory>
</configuration>
</plugin>
</plugins>

以上的插件配置主要指定webroot目录

打包文件

修改好之后,在maven中直接运行package命令即可,出现以下信息即表示package成功

[INFO]
[INFO] — maven-war-plugin:2.2:war (default-war) @ web-schdual —
[INFO] Packaging webapp
[INFO] Assembling webapp [web-schdual] in [D:\ideaWorkSpace\web-schdual\web]
[INFO] Processing war project
[INFO] Webapp assembled in [141 msecs]
[INFO] Building war: D:\ideaWorkSpace\web-schdual\target\web-schdual-1.0-SNAPSHOT.war
[INFO] WEB-INF\web.xml already added, skipping
[INFO] ————————————————————————
[INFO] BUILD SUCCESS
[INFO] ————————————————————————
[INFO] Total time: 3.704 s

然后可以通过复制war包到tomcat下进行部署,这样复杂的是每次更更新文件都需要重复相同的工作浪费很多时间


配置tomcat插件热部署

即在更新完api或者插件的时候可以一键部署更新到本地服务器或者远程服务器

配置tomcat

在tomcat安装目录或者远程tomcat安装目录conf/tomcat-users.xml添加如下配置(username和password可以自己定义):

<tomcat-users>
<role rolename="manager-script"/>
<user username="admin” password="admin" roles="manager-script"/>
</tomcat-users>

配置maven

在maven的安装目录下,查找setting.xml文件,并在文件中添加用户名和密码要与tomcat的配置一致

<server>
<id>tomcat7</id>
<username>admin</username>
<password>admin</password>
</server>

配置项目maven的pom.xml文件

在pom文件的插件中配置如下,然后更新项目

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<path>/test</path>
<url>http://localhost:8080/manager/</url>
<server>tomcat</server>
</configuration>
</plugin>

Tomcat用户权限分配必须具备manager-script权限,manager-gui权限可以不设。
通过三个步骤之后,本地端的Maven就和pom文件连接的Tomcat服务器建立通道,通过pom文件就可以像部署本地Tomcat一样便捷高效啦。
最后:使用tomcat7:deploy 即可一键部署到远程服务器(注意:本地的tomcat要启动状态)。