如何用Maven实现一键打包部署?资深架构师亲授自动化构建秘诀

第一章:Maven核心概念与环境搭建

Maven 是一款强大的项目管理与构建自动化工具,广泛应用于 Java 项目的依赖管理、编译、测试、打包和部署流程中。其基于项目对象模型(POM)的理念,通过统一的配置文件 `pom.xml` 管理项目结构,极大提升了开发效率与项目可维护性。

核心概念解析

  • POM(Project Object Model):Maven 的核心配置文件,定义了项目的基本信息、依赖项、插件和构建行为。
  • 坐标(Coordinates):由 groupId、artifactId 和 version 组成,唯一标识一个项目或依赖库。
  • 仓库(Repository):用于存储和检索依赖的远程或本地目录,分为本地仓库、中央仓库和私有仓库。
  • 生命周期(Lifecycle):Maven 定义了 clean、default 和 site 三大构建生命周期,每个周期包含多个阶段。

环境搭建步骤

确保系统已安装 JDK,并配置好 JAVA_HOME 环境变量后,执行以下操作:
  1. 下载 Maven 发行包并解压到指定目录:
  2. 配置环境变量,在系统路径中添加 Maven 的 bin 目录;
  3. 验证安装是否成功:
# 检查 Maven 版本
mvn -v
若终端输出包含 Maven 版本、Java 版本及路径信息,则表示安装成功。

Maven 项目结构示例

标准的 Maven 项目遵循约定的目录布局,如下表所示:
目录路径用途说明
src/main/java存放主程序 Java 源代码
src/main/resources存放主资源文件,如配置文件
src/test/java存放测试代码
target/编译后生成的字节码、JAR 包等输出内容
graph TD A[用户执行 mvn compile] --> B[Maven 读取 pom.xml] B --> C[下载依赖至本地仓库] C --> D[编译源代码至 target]

第二章:Maven项目结构与配置详解

2.1 理解pom.xml文件的核心元素

pom.xml 是 Maven 项目的核心配置文件,定义了项目的构建、依赖和插件等关键信息。理解其核心元素是掌握 Maven 构建机制的基础。

基本结构与关键标签

每个 pom.xml 必须包含 <project> 根元素,并声明必要的命名空间和模型版本。最基础的元素包括:

  • <groupId>:项目所属组织的唯一标识
  • <artifactId>:项目自身的名称
  • <version>:当前版本号
依赖管理示例
<dependencies>
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
  </dependency>
</dependencies>

上述代码声明了一个测试范围的 JUnit 依赖。<scope>test</scope> 表示该依赖仅在测试编译和运行时生效,不会打包进最终产物,有效控制依赖传递范围。

2.2 标准目录结构设计与自定义配置

在现代项目工程化中,合理的目录结构是可维护性的基石。一个典型的标准布局应清晰划分职责,便于团队协作与后期扩展。
基础目录规范
推荐采用如下结构:

project-root/
├── cmd/            # 主程序入口
├── internal/       # 内部业务逻辑
├── pkg/            # 可复用的公共包
├── config/         # 配置文件
├── api/            # 接口定义
└── scripts/        # 脚本工具
该结构通过物理隔离提升代码安全性(如 internal 包限制外部引用),并增强模块解耦。
配置驱动的自定义扩展
通过配置文件动态调整路径映射,支持环境差异化部署:
配置项说明默认值
LOG_DIR日志存储路径/var/log/app
CACHE_PATH缓存目录./tmp/cache
结合 Viper 等库实现多格式(YAML、JSON)配置加载,提升灵活性。

2.3 依赖管理机制与坐标解析原理

在现代构建工具中,依赖管理通过唯一坐标系统实现精准定位。每个依赖由groupId、artifactId和version三元组标识,称为“坐标”,用于在远程仓库中解析并下载对应构件。
坐标解析流程
当构建系统接收到依赖声明后,按以下顺序执行解析:
  • 检查本地缓存(如Maven本地仓库)是否存在该坐标对应的构件
  • 若未命中,则向配置的远程仓库发起HTTP请求进行查找
  • 解析pom.xml中的传递性依赖,并递归处理依赖树
  • 通过校验和(SHA-1)确保下载内容完整性
依赖冲突解决策略
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-core</artifactId>
  <version>5.3.20</version>
</dependency>
上述代码定义了一个标准依赖项。构建工具依据“最短路径优先”和“先声明优先”原则解决版本冲突,确保最终依赖树的确定性和可重现性。

2.4 仓库工作机制:本地、远程与中央仓库

在Maven项目构建中,仓库是依赖管理的核心。系统默认存在三种仓库类型:本地仓库、远程仓库和中央仓库。
仓库层级结构
  • 本地仓库:位于开发者机器上,存储已下载的依赖副本;
  • 远程仓库:企业或团队自建的私有仓库(如Nexus);
  • 中央仓库:由Maven社区维护的公共仓库,包含大量开源库。
依赖解析流程
当Maven请求一个依赖时,首先检查本地仓库是否存在。若未命中,则向远程仓库发起请求;若远程仓库未配置,将直接访问中央仓库。
<repositories>
  <repository>
    <id>central</id>
    <url>https://repo.maven.apache.org/maven2</url>
  </repository>
</repositories>
该配置定义了中央仓库地址,<id>为仓库唯一标识,<url>指定访问路径。
数据同步机制
依赖流方向:中央仓库 → 远程仓库 → 本地仓库

2.5 实战:从零构建一个可打包的Maven项目

初始化项目结构
使用命令行快速生成标准Maven项目骨架:
mvn archetype:generate -DgroupId=com.example \
                       -DartifactId=my-app \
                       -DarchetypeArtifactId=maven-archetype-quickstart \
                       -DinteractiveMode=false
该命令基于 maven-archetype-quickstart 模板生成基础目录结构,包含 src/main/java 和 src/test/java。
pom.xml 核心配置
关键构建配置如下:
<packaging>jar</packaging>
<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-compiler-plugin</artifactId>
      <version>3.8.1</version>
      <configuration>
        <source>8</source>
        <target>8</target>
      </configuration>
    </plugin>
  </plugins>
</build>
指定打包类型为 JAR,并配置 Java 8 编译兼容性,确保项目可编译输出。

第三章:生命周期与插件机制深度解析

3.1 Clean、Default、Site三大生命周期剖析

Maven的构建过程由生命周期驱动,其中最核心的是Clean、Default和Site三大生命周期。
Clean生命周期
负责项目清理,包含pre-clean、clean、post-clean阶段。
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-clean-plugin</artifactId>
    <version>3.2.0</version>
</plugin>
该插件绑定clean阶段,删除target目录,确保构建环境干净。
Default生命周期
处理项目的编译、测试、打包与部署,涵盖validate到install等23个阶段。典型执行顺序如下:
  1. compile:编译源代码
  2. test:运行单元测试
  3. package:生成JAR/WAR包
  4. install:安装至本地仓库
Site生命周期
用于生成项目文档站点,包括site、site-deploy等阶段,支持聚合报告与静态页面发布。
生命周期主要目标典型阶段
Clean清理构建目录pre-clean, clean
Default完整构建流程compile, package, install
Site生成项目文档site, site-deploy

3.2 插件绑定与目标执行顺序控制

在插件化架构中,插件的绑定时机与执行顺序直接影响系统行为。通过显式声明依赖关系和优先级,可精确控制插件的加载顺序。
执行顺序配置示例
{
  "plugins": [
    {
      "name": "auth-plugin",
      "priority": 100,
      "enabled": true
    },
    {
      "name": "logging-plugin",
      "priority": 90,
      "enabled": true
    }
  ]
}
上述配置中,priority 值越大,优先级越高,auth-plugin 将先于 logging-plugin 执行。系统按优先级降序加载插件,确保关键逻辑前置。
插件绑定生命周期钩子
  • beforeInit:初始化前执行,适用于配置预处理;
  • afterInit:绑定完成后触发,用于启动监听或资源注册;
  • onDestroy:插件卸载时清理资源。
通过合理使用钩子函数,可在不同阶段介入目标行为,实现灵活的流程控制。

3.3 常用插件实战:compiler、surefire、resources

在Maven项目中,`maven-compiler-plugin`、`maven-surefire-plugin` 和 `maven-resources-plugin` 是构建生命周期中最核心的三大插件。
编译插件(compiler)
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.11.0</version>
  <configuration>
    <source>17</source>
    <target>17</target>
  </configuration>
</plugin>
该配置指定Java源码版本与目标字节码版本,确保编译兼容性。参数 `` 控制语言特性支持,`` 决定生成的class文件版本。
测试执行(surefire)
Surefire 负责运行单元测试,默认绑定 test 阶段。可通过排除特定类优化执行:
  • **/IntegrationTest.java — 排除集成测试
  • 配合 `true` 快速跳过测试

第四章:自动化打包与部署实战

4.1 使用maven-assembly-plugin定制化打包

在Maven项目中,maven-assembly-plugin提供了高度灵活的打包能力,支持将项目及其依赖、资源文件、脚本等按自定义结构组装成发布包。
插件基本配置
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>3.3.0</version>
    <configuration>
        <descriptorRef>jar-with-dependencies</descriptorRef>
        <archive>
            <manifest>
                <mainClass>com.example.Main</mainClass>
            </manifest>
        </archive>
    </configuration>
</plugin>
该配置使用预定义描述符jar-with-dependencies,将所有依赖打包进一个可执行JAR,并指定入口类。
自定义assembly描述文件
通过编写assembly.xml,可精确控制输出结构:
  • 包含/排除特定文件
  • 定义目录层级
  • 添加外部脚本或配置模板
最终生成符合生产部署要求的归档文件,如tar.gz或zip。

4.2 集成SSH插件实现远程服务器自动部署

在持续集成流程中,自动化部署是提升交付效率的关键环节。通过集成SSH插件,CI/CD工具可直接连接远程服务器并执行部署命令。
配置SSH插件连接信息
以Jenkins为例,需在系统设置中添加SSH远程主机:

sshPublisher(
    publishers: [
        sshPublisherDesc(
            configName: 'prod-server',
            transfers: [
                sshTransfer(
                    sourceFiles: 'dist/**',
                    removePrefix: 'dist/',
                    remoteDirectory: '/var/www/html'
                )
            ],
            usePromotionTimestamp: false,
            useWorkspaceInPromotion: false
        )
    ]
)
该脚本定义了将本地dist目录文件上传至目标服务器/var/www/html路径,removePrefix确保目录结构扁平化。
执行远程部署命令
上传完成后,可通过execCommand触发重启服务:

systemctl restart nginx
cd /var/www/app && npm install && pm2 reload app
命令确保应用依赖更新并平滑重启,实现零停机部署。

4.3 多环境配置管理:profile与资源过滤

在现代Java应用开发中,多环境配置是保障系统可移植性的关键环节。Spring Boot通过profile机制实现配置隔离,允许为不同环境加载独立的配置文件。
Profile配置示例
# application-dev.yml
server:
  port: 8080
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/dev_db
该配置仅在激活dev profile时生效,适用于本地开发环境。
资源过滤与动态注入
Maven可通过资源过滤将环境变量注入编译后的配置文件:
<resources>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
  </resource>
</resources>
配合application-${env}.properties模板,实现构建时动态替换占位符。
  • 开发环境(dev):注重调试信息输出
  • 测试环境(test):模拟真实场景数据
  • 生产环境(prod):强调性能与安全

4.4 CI/CD流水线中Maven的集成实践

在持续集成与持续交付(CI/CD)流程中,Apache Maven作为Java项目的构建工具,承担着编译、测试、打包和部署的核心职责。通过将其集成到主流CI工具(如Jenkins、GitLab CI)中,可实现项目自动化构建。
标准化构建脚本配置
Maven的pom.xml文件定义了项目结构与依赖,确保各环境构建一致性。典型CI阶段调用如下命令:
mvn clean package -DskipTests
该命令清理旧构建产物并重新打包,跳过测试以提升流水线效率(可在后续阶段单独执行测试)。
与Jenkins Pipeline集成
在Jenkinsfile中声明Maven执行步骤:
stage('Build') {
    steps {
        sh 'mvn clean package'
    }
}
需确保构建节点已安装Maven并配置环境变量,或使用Docker镜像方式隔离运行时环境。
依赖缓存优化构建速度
  • 缓存~/.m2/repository目录避免重复下载依赖
  • 结合Nexus等私有仓库提升内网拉取效率

第五章:构建效率优化与最佳实践总结

缓存策略的精细化管理
在持续集成流程中,合理利用构建缓存可显著缩短任务执行时间。例如,在使用 GitHub Actions 时,通过缓存 Go 模块依赖减少重复下载:

- name: Cache Go modules
  uses: actions/cache@v3
  with:
    path: ~/go/pkg/mod
    key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
该配置确保仅当 go.sum 文件变更时才重建模块缓存,避免无效网络请求。
并行化多阶段构建任务
将独立的测试、构建和 lint 阶段并行执行,能有效提升流水线吞吐量。以下为 Jenkins 中定义并行阶段的示例:
  1. 静态代码检查(golangci-lint)
  2. 单元测试执行(go test -race)
  3. 安全扫描(govulncheck)
每个任务运行在独立节点上,整体构建时间从 6.2 分钟降至 2.4 分钟。
资源利用率监控与调优
构建工具CPU 峰值内存占用平均耗时(s)
Make + Docker Build85%3.2GB142
Bazel67%2.1GB89
数据显示,Bazel 因增量构建机制在资源控制方面表现更优。
构建产物的版本化与溯源
使用 cosign 对容器镜像进行签名,并结合 SBOM(软件物料清单)实现构建溯源:

  cosign sign --key cosign.key ghcr.io/user/app:v1.8.0
  syft ghcr.io/user/app:v1.8.0 -o cyclonedx > sbom.xml
  
MAVEN一键批处理配置环境变量 WINDOWS 10 一键配置MAVEN 环境变量.抛砖引玉吧,我的代码是根据JAVA一键配置环境变量改编而来的。如有不足之处希望大神们指点。 立即下载

相关推荐

HDMI协议介绍(一)--Overview

HDMI全称(High Definition Multimedia Interface)高清多媒体接口,支持在单线缆上传输全数字高清视频和多声道音频。

SlamDunk的博客 2万+

【微服务部署】三、Jenkins+Maven插件Jib一键打包部署SpringBoot应用Docker镜像步骤详解

前面我们介绍了K8S+Docker+Maven插件打包部署SpringCloud微服务项目,在实际应用过程中,很多项目没有用到K8S和微服务,但是用到了Docker和SpringBoot,所以,我们这边介绍,如果使用Jenkins+jib-maven-plugin插件打包部署SpringBoot项目的Docker镜像。

全栈程序猿的专栏 4324

解决usbisp不识别无法烧录Atmega328P,Arduino不识别问题

如果使用Arduino IDE里面的烧录,可能会遇到一个问题,就是不识别国产这种廉价的USBISP 点击烧录引导程序,会遭遇到找不到USB设备的问题,选哪个都会提示找不到,比如选择USBasp could not find USB device with vid=0x16c0 pid=0x5dc vendor='www.fischl.de' product='USBasp' 因此,我们需要使用到progisp这一个软件的1.72版本 选择好芯片的型号后,调用编译好的HEX文...

arenascat的博客 7436

Jenkins自动部署Maven项目详细教程

Jenkins从安装到使用,详细介绍Jenkins拉取代码、编译部署、流水线搭建等每一个步骤,已排雷。

Ukulilion的博客 1万+

电力电子论文(TPE、TTE)投稿经验分享

电力电子顶刊论文投稿经验

橙子的博客 2万+

python爬虫入门教程(非常详细)

爬虫指的是一种自动化程序,能够模拟人类在互联网上的浏览行为,自动从互联网上抓取、预处理并保存所需要的信息。爬虫运行的过程一般是先制定规则(如指定要抓取的网址、要抓取的信息的类型等),紧接着获取该网址的HTML源代码,根据规则对源代码进行解析和抽取,最后进行处理和保存。爬虫在实际应用中广泛使用,如搜索引擎、大数据分析、交易数据采集等领域,都需要用到爬虫技术来实现信息的定向采集和处理。

工宗浩生财指南针 2万+

阿里云Maven settings.xml文件

<?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this...

weixin_30740295的博客 298

Innovus实战:5分钟搞定postRoute阶段冗余hold buffer的自动清理(附PHC识别技巧)

本文分享了在数字IC后端设计中使用Innovus工具,于postRoute阶段自动清理冗余hold buffer的实战技巧。通过配置时序感知的面积回收模式,可在5分钟内安全移除非关键路径上的PHC缓冲器,有效优化芯片面积与功耗,并附有PHC识别与验证方法。

moon9的博客 400

在父子Maven中,使用IDEA一键部署至docker

通过ssl加密方式连接docker 在父子Maven中如何部署到docker中

qq_44962906的博客 463

TIA protal与SCL从入门到精通(4)——软件单元使用

平台: TIA portal 15.1 1.添加软件单元 添加软件单元如下图: 关于软件单元使用基本限制,看如下文章即可 TIA protal与SCL从入门到精通(3)——软件单元基本介绍 每个软件单元是一个独立结构,所以每个软件单元的运行方式与实际PLC类似,所以首先添加主函数块: 注意:无论系统是否是具有并发性(这里不要混淆并行与并发的概念),在PLC所有主函数执行总是按主函数依次完成...

苦走一口田 7377

组合导航 | RTK、IMU与激光雷达组合导航算法:原理、实现与验证

当激光雷达噪声增加至0.1m时,系统位置RMSE仅上升18%,验证了滤波算法的鲁棒性[110]:融合方案在RTK信号丢失30秒后,位置误差仍控制在1.5m内,显著优于IMU单独导航[28]:ESKF框架能有效建模传感器误差特性,状态向量需包含外参与时间偏移等关键参数。:传感器标定精度直接影响系统性能,建议每3个月进行一次重新标定。:IMU预积分与特征匹配是系统实时性的关键瓶颈,需重点优化。:维持10秒窗口内的关键帧,平衡精度与实时性[132]:特征匹配占总耗时的65%,可通过。

尘世冰封的专栏 943

从手动打包到自动化:用Maven插件实现一键部署的3种方案(含Antrun实战)

本文详细介绍了如何通过Maven插件实现从手动打包到自动化部署的进阶方案,重点解析了maven-antrun-plugin、maven-assembly-plugin和maven-deploy-plugin三种主流工具的应用场景与配置技巧。通过实战案例展示如何与Jenkins集成,实现高效、安全的持续交付流程,帮助开发者将部署时间从小时级缩短至分钟级,显著提升DevOps效率。

happy2的博客 713

Spring AI Alibaba实战训练营-20 基于注解驱动的MCP快速开发入门指南

本文详细讲解如何使用SpringAiAlibaba快速开发基于注解驱动的MCP应用。文章详细介绍了MCP协议并且重点介绍了Spring AI通过注解驱动的开发方式简化MCP服务开发。具体包括服务端和客户端的注解使用、城市最新时间查询MCP项目结构概览(服务端和客户端模块)以及环境配置要求。

program哲学 295

maven一键部署

==================================================================================================== maven一键部署采用shell脚本部署需要先下载maven安装包,本教程是以apache-maven-3.6.0-bin.tar.gz为例,不喜勿喷,禁止转发。 相关资源下载:maven一键部署相关安装包及脚本 ================================================

柚子° 254

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

全网最详细Jenkins一键远程部署Maven项目和Vue项目

的服务通常会隔离开来,部署在不同的服务器上,这时我们需要远程登录服务器将打好的包上传至目标服务器上,并执行相应的shell脚本启停服务。其实和上面Maven项目的操作一样,只不过H5是静态部署,不需要重启Nginx服务器,直接放入Nginx目录下即可。,并且实现了当应用进程和Jenkins进程在同一台服务器上时,应用服务的自动化发布。接下来我们需要添加需要连接的服务器列表,建议专门为Jenkins开设一个登录用户,下面是需要上传的文件配置,上传至哪台服务器,上传哪些源文件,上传至哪个目录等等。

lingbomanbu_lyl的博客 2006

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

maven部署就是这么简单

配置本地仓库,文件里搜索localRepository,然后放开,并在标签中间配置上自己的仓库地址。maven需要依赖jdk运行,所以安装maven之前需要先安装jdk,jdk安装教程看这里。将下载好的maven压缩包解压后放到指定目录,打开setting.xml文件。建立好maven仓库地址,比如E:/localRepository。直接上maven官网下载,这里是下载地址,直接下载对应版本即可。配置国内加速镜像,将mirrors标签替换成以下内容即可。出现以上信息,代表maven成功配置。

luoluoal的博客 493

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

java+svn自动打包_Java开发流程自动化(svn+maven+nexus+jenkins) --自动编译,持续集成,测试,打包,发布/部署...

Java开发中,很多工作比较繁琐:新功能开发完毕,测试,修改配置文件,打包,发布…我们时常能听到将开发流程自动化的声音,然而实际真正将自动化落地的有多少呢,你还在一遍遍的用IDE打包,然后手工部署吗,现在我们需要将这一切完全自动化,专心写代码:)一基础环境搭建篇注:以下环境除Nexus外,其他都需要在同一台机器中安装,所有操作是在服务器中,不是本地开发环境,所以会省略一些不必要的步骤。操作系统:...

weixin_39992462的博客 293

maven常用命令(编译、测试、运行、打包、安装、部署)

我们可以在cmd中通过一系列的maven命令来对我们的maven-helloworld工程进行编译、测试、运行、打包、安装、部署。 compile compile是maven工程的编译命令,作用是将src/main/java下的文件编译为class文件输出到target目录下。 cmd进入命令状态,执行mvn compile,如下图提示成功: 查看 target目录,class文件已生成,编译完成。 test test是maven工程的测试命令 mvn test,会执行src/test/

Leon_Jinhai_Sun的博客 8128

maven引用本地jar包、打包

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。

qq_36400642的博客 946

我常用的自动化部署技巧,贼好用,推荐给大家!

SpringBoot+Jenkins自动化部署技巧,远程部署同样适用,附通用自动化脚本!本文将从半自动化部署讲起,到自动化部署,讲解一套生产环境切实可用的自动化部署方案!半自动化部署 之...

macrozheng的专栏 1048

linux写脚本:一键更新打包部署maven工程

有条件可以使用jenkins这种工具这东西配来配去两次没配明白,还是有一些门槛的,不想搞了。就想整个命令,没想每次上传发版包而已,只有一个工程,直接写个脚本就行。

学习使我快乐_玉祥 1116

maven一键部署到服务器

文章目录maven一键部署到服务器简介配置使用 maven一键部署到服务器 简介 利用maven mojo功能一键部署jar包或war包到远程服务器上,很适合个人项目一键发布上去再执行重启命令。阿里云的插件功能太冗余了,这个比较简洁。 配置 maven的setting.xml中添加服务器账号配置 <server> <id>deployment:local</id> <username>root</username> &

u014792378的博客 556

Maven项目一键部署

免登陆 # 生成秘钥 tianshl:.ssh tianshl$ ssh-keygen -t rsa -P '' # 将公钥添加至服务器的authorized_keys中 tianshl:.ssh tianshl$ ssh-copy-id -i ./id_rsa.pub root@192.168.1.54 创建脚本 # 项目根目录下创建脚本,名为:update.sh, 内容如下 ...

tianshl的专栏 4718

maven一键部署java项目到tomcat

配置环境如下 ecplise Mars.1 Release (4.5.1)、Apache Maven 3.3.9 、tomcat7 1. 配置tomcat 首先到tomcat安装目录下的conf下,修改tomcat-users.xml文件 在节点中添加下列内容<tomcat-users> <role rolename="manager-gui"/> <role rolename="m

darktrip 1794

maven一键部署tomcat war包

1、环境如下 idel、apache-maven-3.0.5、apache-tomcat-7.0.39 2、配置如下 1) 因为tomcat7默认情况下没有配置manager访问权限,所以这里需要在tomcat-users.xml加入用户以及权限 &amp;amp;amp;amp;amp;lt;tomcat-users&amp;amp;amp;amp;amp;gt; &amp;amp;amp;amp;amp;lt;role rolename=&amp;a

严老板的技术梦想博客 486
上一篇: 【Java单元测试Junit实战宝典】:从入门到精通的20个核心技巧
下一篇: 为什么80%的Java开发者都搞不懂类加载机制?:深入JVM核心原理
PixelStream
博客等级 码龄1年 177粉丝 2182原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值