maven集成命令-U -B -P -e -X

maven -U clean compile install -e -X -Dmaven.test.skip=true

 

在持续集成服务器上使用怎样的 mvn 命令集成项目,这个问题乍一看答案很显然,不就是 mvn clean install 么?事实上比较好的集成命令会稍微复杂些,下面是一些总结:

不要忘了clean: clean能够保证上一次构建的输出不会影响到本次构建。
使用deploy而不是install: 构建的SNAPSHOT输出应当被自动部署到私有Maven仓库供他人使用,这一点在前面已经详细论述。
使用-U参数: 该参数能强制让Maven检查所有SNAPSHOT依赖更新,确保集成基于最新的状态,如果没有该参数,Maven默认以天为单位检查更新,而持续集成的频率应该比这高很多。
使用-e参数:如果构建出现异常,该参数能让Maven打印完整的stack trace,以方便分析错误原因。
使用-Dmaven.repo.local参数:如果持续集成服务器有很多任务,每个任务都会使用本地仓库,下载依赖至本地仓库,为了避免这种多线程使用本地仓库可能会引起的冲突,可以使用-Dmaven.repo.local=/home/juven/ci/foo-repo/这样的参数为每个任务分配本地仓库。

使用-B参数:该参数表示让Maven使用批处理模式构建项目,能够避免一些需要人工参与交互而造成的挂起状态。

综上,持续集成服务器上的集成命令应该为 mvn clean deploy -B -e -U -Dmaven.repo.local=xxx 。此外,定期清理持续集成服务器的本地Maven仓库也是个很好的习惯,这样可以避免浪费磁盘资源,几乎所有的持续集成服务器软件都支持本地的脚本任务,你可以写一行简单的shell或bat脚本,然后配置以天为单位自动清理仓库。需要注意的是,这么做的前提是你有私有Maven仓库,否则每次都从Internet下载所有依赖会是一场噩梦。

项目开发需要有多个环境,一般为开发,测试,预发,正式4个环境,通过maven可以实现按不同环境进行打包部署,命令为:

mvn package -P dev

其中“dev“为环境的变量id, 可以自己定义, 我定义的名称为:dev,qa,pre,prod , 具体在pom.xml中的配置如下:

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> ...... <profiles> <profile> <id>dev</id> <properties> <env>dev</env> </properties> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> <profile> <id>qa</id> <properties> <env>qa</env> </properties> </profile> <profile> <id>pre</id> <properties> <env>pre</env> </properties> </profile> <profile> <id>prod</id> <properties> <env>prod</env> </properties> </profile> </profiles> ...... <build> <filters> <filter>config/${env}.properties</filter> </filters> <resources> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> </resource> </resources> ...... </build> </project> 

1.profiles定义了各个环境的变量id

2.filters中定义了变量配置文件的地址,其中地址中的环境变量就是上面profile中定义的值

3.resources中是定义哪些目录下的文件会被配置文件中定义的变量替换,一般我们会把项目的配置文件放在src/main/resources下,像db,bean等,里面用到的变量在打包时就会根据filter中的变量配置替换成固定值

参照如下博客URL:

http://www.cnblogs.com/cfrost/p/5491291.html

http://blog.csdn.net/wuxinzaiyu/article/details/8524274

https://www.jianshu.com/p/7e94b7de21a9

 

转载于:https://www.cnblogs.com/xd502djj/p/11066785.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/411081.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

String、StringBuffer与StringBuilder之间区别

最近学习到StringBuffer&#xff0c;心中有好些疑问&#xff0c;搜索了一些关于String&#xff0c;StringBuffer&#xff0c;StringBuilder的东西&#xff0c;现在整理一下。 关于这三个类在字符串处理中的位置不言而喻&#xff0c;那么他们到底有什么优缺点&#xff0c;到底什…

java 异步框架_基于Java的轻量级异步编程框架

# **DActor**## IntroductionDActor框架可同时支持同步和异步代码&#xff0c;简化在线异步代码的开发&#xff0c;用同步代码的思维来开发异步代码&#xff0c;兼顾异步代码的高并发、无阻塞和同步代码的易读性&#xff0c;可维护性。基于协程思想设计最大程度的降低阻塞&…

【Silverlight】Bing Maps开发应用与技巧二:自定义图钉标注控件和动态ToolPanel

在Bing Maps Silverlight Control中以及为我们提供了地图图钉控件Pushpin&#xff0c;我曾经在《使用图钉层&#xff08;Pushpin layer&#xff09;及地图图层&#xff08;MapLayer&#xff09;》一文中介绍过他的使用方法&#xff0c;本篇主要介绍如何自定义图钉标注控件以及对…

比拼浮点运算速度,超算排行榜是这样“算”出来的

6月17日&#xff0c;新一期全球超算500强榜单出炉&#xff0c;入选500强的所有超算浮点运算速度都突破每秒千万亿次&#xff0c;中国超算也在前四占有两席位置。 普通计算机用指令运算速度衡量计算性能&#xff0c;而超算通常用浮点运算速度来衡量其性能。那么&#xff0c;什么…

[软技能] 在前后端分离项目里,请说说前端传递的token的流程?

[软技能] 在前后端分离项目里&#xff0c;请说说前端传递的token的流程&#xff1f; &#xff08;一&#xff09;&#xff1a;cookie前端 post 账号密码&#xff0c;后端 response header: set-cookie, 将 token 插入 cookie 内&#xff0c;之后每次针对该域名下的请求都会带上…

java short后缀_自学java的新手问个问题,为什么写个代码中的int能自动转

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼你学一个东西 先学会他的定义java语法是这样定义的 类型修饰符 变量名 值其中左边是被赋值的 右边是赋值的 类型修饰符有 八种 int boolean char short long float double byte当你声明 一个变量时 的语法是类型修饰符 变量名; 也…

[html] 使用svg画一个爱心

[html] 使用svg画一个爱心 <head><style>*,*:before,*:after {box-sizing: border-box;margin: 0;padding: 0;}.heart-loader {position: absolute;display: block;left: 50%;top: 50%;margin-top: -90px;width: 180px;height: 180px;overflow: visible;transform…

webkit

#ifndef MAINWINDOW_H #define MAINWINDOW_H .pro文件QT core gui webenginewidgets #include <QMainWindow>Qt5 不支持webkit #include <QWebEngineView> #include <QUrl> namespace Ui { class MainWindow; } class MainWindow : public QMainWin…

java args eclipse_不会在eclipse中运行含有args[]参数的Java代码,求指导

这不还是上次那个东西吗&#xff1f;我没准备PC上的java开发环境&#xff0c;所以在Raspberry Pi的命令行上&#xff0c;给你从编译到执行尝试了一下&#xff0c;供参考。编辑源代码&#xff1a;pirpi ~ $ nano SequenceDemo.java文件内容填入&#xff1a;import java.lang.Mat…

[html] 使用svg画一个三角形

[html] 使用svg画一个三角形 效果 Screen Shot 2020-11-13 at 14 39 20 说明 svg 定义svg元素 viewBox 定义svg的画布大小&#xff0c;0 0 100 100指的是x、y偏移为0&#xff0c;宽高为100(相对单位) <path /> 定义一个路径元素 fill"..." 定义路径的填充颜色…

数据库连接和异常处理的几种常用方法

一.数据库连接 1.在需要数据库连接的地方连接数据库。比如说&#xff1a; 1 publicclassSQLHleper2 {3 publicintExecuteNonQuery(stringsql)4 {5 connstr"server.;databasenewssystem;uidsa;pwd123";6 SqlConnection conn newSqlConnection(strconn);7 conn.…

java 创建线程的三种方法_java 创建线程的几种方式

说道线程&#xff0c;肯定会想到使用 java.lang.Thread.java这个类那么创建线程也主要有2种方式第一种方式&#xff1a;public class MyThread extends Thread {public void run() {System.out.println("这是MyThread线程");}}然后在调用处&#xff0c;执行start方法…

[html] 说说你对HTML5中pattern属性的理解

[html] 说说你对HTML5中pattern属性的理解 好像是判断input在输入时按下tab键跳转到下一个input的优先级个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起通关前端面试题

【iOS】从实际出发理解多线程(二)--NSThread基础操作

简介 NSthread是苹果官方提供面向对象操作线程的技术&#xff0c;简单方便&#xff0c;可以直接操作线程对象&#xff0c;不过需要自己控制线程的生命周期。在平时使用较少&#xff0c;常用的就是下面的方法来获取当前线程。 [NSThread currentThread] 使用 1.实例初始化、属性…

java readline最后一行_java – 如何在reader.readLine()中检测第一行和最后一行?

酷问题我打了一圈,这是一个SSCCE,只是copy’n’paste’n’run它.package com.stackoverflow.q2292917;import java.io.BufferedReader;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.io.PrintWriter;public class Test {public stati…

Qt中使用QSqlDatabase::removeDatabase()的正确方法

如果你用过Qt的QSqlDatabase的话&#xff0c;多半会对下面的警告信息感兴趣&#xff1a; QSqlDatabasePrivate::removeDatabase: connection qt_sql_default_connection is still in use, allqueries will cease to work. 意思是说&#xff0c;还有某查询引用默认数据库连接&qu…

[html] 你是如何区分HTML和HTML5的?

[html] 你是如何区分HTML和HTML5的&#xff1f; 通过文档类型声明&#xff1b;通过一些HTML5独有新标签&#xff1a;<date>、<email>、<url>、<video>、<section>、<canvas>等个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识…

app爬虫Android 7证书设置

环境&#xff1a;windows&#xff0c;Android sdk&#xff08;要使用adb命令&#xff09;&#xff0c;夜神模拟器&#xff08;自己创建一个Android 7 模拟器&#xff0c;设置root&#xff0c;桥接&#xff0c;wlan设置好代理&#xff09; 模拟器设置代理 如xxx.xxx.xxx.xxx:888…

java indexof效率_Java indexOf函数比Rabin-Karp更有效吗?文字搜寻效率

几周前&#xff0c;我向Stackoverflow提出了一个问题&#xff0c;该问题涉及如何创建一种有效的算法来搜索大量文本中的模式。现在&#xff0c;我正在使用String函数indexOf进行搜索。一个建议是使用Rabin-Karp作为替代方案。我编写了一些如下的测试程序&#xff0c;以测试Rabi…

双绞线制作方法和标准

双绞线的制作方法&#xff1a; 标准568B&#xff1a;橙白--1&#xff0c;橙--2&#xff0c;绿白--3&#xff0c;蓝--4&#xff0c;蓝白--5&#xff0c;绿--6&#xff0c;棕白--7&#xff0c;棕--8 (如图2&#xff09; 标准568A&#xff1a;绿白--1&#xff0c;绿--2&#xff0c…