介绍
Java项目,配置Maven,将打包好的war包,一键部署到远程tomcat服务器.
启动Tomcat容器
1、下载dockerFile配置源码 https://github.com/CiaraLi/dockerFiles, 进入maven 配置文件夹,可以看到如下目录
├── Dockerfile
├── src
│ ├── manager.xml
│ ├── server.xml
│ └── tomcat-users.xml
└── webapps
2、修改Tomcat配置
编辑tomcat用管理员账号密码
<user username="admin" password="admin" roles="admin-gui,manager-gui"/>
<user username="robot" password="robot" roles="admin-script,manager-script"/>
3、构建maven镜像
docker build -t maven ./
docker run -itd -v /home/www-data/java/webapps:/var/data/webapps -v /home/www-data/java/logs/:/var/data/logs/ -p 8080:8080 --name maven maven
4、验证tomcat http://127.0.0.1:8080/
安装Maven
1、maven官方下载适用版本:https://maven.apache.org/download.cgi
2、解压至/usr/local/maven/
3、配置tomcat账号
<servers>
<server>
<id>tomcat</id>
<username>robot</username>
<password>robot</password>
</server>
</servers>
项目配置
- 修改pom.xml
1、修改打包方式为war
<packaging>war</packaging>
2、修改依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!-- 移除嵌入式tomcat插件 -->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 添加tomcat插件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
3、添加Maven插件,将server配置为步骤2中的服务名,path是部署的路径 ,URL填写远程tomcat的地址
<!-- Maven配置 -->
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>http://127.0.0.1:8080/manager/text</url>
<server>tomcat</server>
<update>true</update>
<path>/test</path>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
4、执行部署
mvn tomcat7:deploy // 第一次执行
mvn tomcat7:redeploy // 修改后执行
5、版本
- path 后面添加#1.0号可以生成版本目录,如test#1.0,访问路径就是 /hello/1.0
6、访问 http://1127.0.0.1:8080/manager/html/list 查看应用部署