maven 打war包tomcat服务器乱码问题

   今天用maven3的命令打war包,命令是mvn clean package -Dmaven.test.skip=true,打包后放在tomcat跑起来后发现tomcat的日志出现乱码。

后来在pom.xml中添加<project.build.sourceEncoding>utf-8</project.build.sourceEncoding>就解决了。

    主要原因是我的电脑window的maven默认的字符集是gbk ,可以执行mvn -version看到 

Maven home: G:\apache-maven-3.3.9
Java version: 1.8.0_65, vendor: Oracle Corporation
Java home: G:\java\jdk1.8\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 8.1", version: "6.3", arch: "amd64", family: "dos"

 

查阅了下资料发现maven2和maven3有点区别

在确认POM文件中已有上述<project.build.sourceEncoding>内容的前提下,增加以下内容(如已包含maven-compiler-plugin的相关内容,则只需在相应位置增加红色字体部分内容):

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>

注意:

1、同时指定<project.build.sourceEncoding>属性和<encoding>的方式可适用于Maven2和Maven3。

2、在Maven3中可以只增加<project.build.sourceEncoding>属性而不指定<encoding>,即能解决编译问题。如果只指定<encoding>编译不会出错,但会出现以下警告。建议两者都进行指定或只指定前者。警告信息如下:

[WARNING] Using platform encoding (GBK actually) to copy filtered resources, i.e. build is platform dependent!

3、在Maven2中,如果只指定<project.build.sourceEncoding>属性则编译出错;如果只指定<encoding>编译不会出错,但会出现与第2点类似的警告,建议两者都进行指定,以免对运行产生影响。

转载于:https://www.cnblogs.com/yk1119/p/6237476.html

<think>好的,用户想了解如何将ruoyi-vue-pro项目打WAR文件并部署到Tomcat服务器。首先,我需要回忆一下相关的步骤,并结合提供的引用内容来确保准确性。 首先,ruoyi-vue-pro是一个前后端分离的项目,所以可能需要分别处理前端和后端。根据引用[2],前端构建生产环境是用yarn build:prod,然后生成静态文件。但用户主要问的是后端打WAR,所以重点在ruoyi-admin模块。 引用[1]提到了将ruoyi-admin.war放入Tomcat的webapps目录,但需要确认如何生成这个WAR。通常,Maven项目可以通过修改pom.xml中的打方式为war,然后执行mvn clean package。引用[3]中提到了Maven仓库的优先级,但可能与此问题关系不大,不过配置JDK版本可能影响构建,需要检查pom.xml中的编译器插件设置。 接下来,部署到Tomcat需要修改server.xml中的端口,比如引用[1]中的例子是port="8282",可能需要用户根据自己的环境调整。防火墙设置也是关键,需要开放对应端口,使用firewall-cmd命令。 另外,后端访问路径可能涉及上下文路径,比如引用[1]中的http://192.168.1.97:8282/ruoyi-admin,说明WAR部署后的上下文是ruoyi-admin,这可能由文件名决定,或者需要在Tomcat中配置。 可能还需要考虑数据库配置,比如application-prod.yml中的数据库连接信息是否正确,以及是否需要调整Tomcat的连接器设置,如URIEncoding="UTF-8"来避免乱码问题。 需要提醒用户检查依赖和配置文件,例如是否所有依赖正确,配置文件是否切换到生产环境,比如Spring Profile设置为prod。此外,启动Tomcat后查看日志文件以排除错误。 总结步骤应该是:修改打方式为war,构建项目,部署到Tomcat的webapps,配置Tomcat端口和防火墙,最后访问验证。过程中可能需要处理路径问题、编码设置和依赖配置。</think>### Ruoyi-Vue-Pro项目打WAR并部署Tomcat的步骤 #### 一、后端WAR生成 1. **修改打方式** 打开`ruoyi-admin/pom.xml`,添加`<packaging>war</packaging>`指定打格式: ```xml <artifactId>ruoyi-admin</artifactId> <packaging>war</packaging> <!-- 关键修改 --> ``` 2. **排除内嵌Tomcat(Spring Boot项目需处理)** 在依赖中排除`spring-boot-starter-web`的内嵌容器: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> ``` 3. **执行Maven** 在项目根目录执行: ```bash mvn clean package -DskipTests ``` 生成的WAR文件路径:`ruoyi-admin/target/ruoyi-admin.war`[^3] #### 二、Tomcat部署配置 1. **修改Tomcat端口(可选)** 编辑`/opt/tomcat/conf/server.xml`,调整端口号(示例用8282): ```xml <Connector port="8282" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8"/> <!-- 解决中文乱码 --> ``` [^1] 2. **部署WAR文件** 将`ruoyi-admin.war`复制到Tomcat的`webapps`目录: ```bash cp ruoyi-admin.war /opt/tomcat/webapps/ ``` 3. **防火墙开放端口** ```bash firewall-cmd --zone=public --add-port=8282/tcp --permanent firewall-cmd --reload ``` #### 三、启动与验证 1. **启动Tomcat** ```bash /opt/tomcat/bin/startup.sh ``` 查看日志确认启动状态: ```bash tail -f /opt/tomcat/logs/catalina.out ``` 2. **访问验证** 浏览器访问: `http://服务器IP:8282/ruoyi-admin` 若显示登录页,说明部署成功 #### 四、前端部署补充 若需同时部署前端(非WAR需求): 1. 构建生产环境: ```bash yarn build:prod # 生成dist目录 ``` 2. 将静态文件部署至Nginx或Tomcat前端代理[^2]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值