使用Maven设置您的应用服务器

在许多情况下,无需先设置应用程序就无法部署应用程序。 在JBoss AS 7.x中,您可能需要配置例如数据库连接。 或者,您必须配置一个安全领域。 也许您还想调整SLSB池…在任何一种情况下,团队中的所有开发人员都必须共享一个共同的或至少相似的配置。

通常,可以在不定期发送的电子邮件或某些Wiki页面上找到此信息。 但是,在发布后的某个时间,当您必须签出分支以修复某些错误或添加新功能时会发生什么? 您将必须重构对该分支有效的配置。 那么,为什么不将配置文件与仅用于配置整个应用程序服务器的Maven配置一起添加到版本控制系统中呢?

让我们尝试保持简单,只使用公共可用和常用的插件。 首先,让我们将以下所需的所有版本添加到pom.xml的属性部分:

<properties><jboss.install.dir>${project.build.directory}/jboss</jboss.install.dir><jboss.version>7.2.0.Final</jboss.version><app.version>${project.version}</app.version><ojdbc.version>11.2.0.1.0</ojdbc.version></properties>

我们还在这里定义JBoss AS的安装目录。 这样,我们可以根据需要使用命令行选项-D对其进行更改。 现在,我们添加一个新的配置文件,这样我们就必须显式打开设置过程,并且它不属于常规构建:

<profile><id>setupAs</id><build><plugins>...</plugins</build>
</profile>

如果我们在maven存储库中部署了当前的JBoss版本作为Maven工件,则可以使用maven-dependency-plugin下载JBoss并将其解压缩到上面给出的安装目录中:

<plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-dependency-plugin</artifactId><version>2.8</version><executions><execution><id>unpack-jboss</id><phase>package</phase><goals><goal>unpack</goal></goals><configuration><artifactItems><artifactItem><groupId>org.jboss</groupId><artifactId>jboss-as</artifactId><version>${jboss.version}</version><type>zip</type><outputDirectory>${project.build.directory}/jboss</outputDirectory></artifactItem></artifactItems></configuration></execution>

现在,应用程序服务器已解压缩,我们必须添加JDBC驱动程序以及应用程序(或您需要的任何其他内容)。 我们通过向maven依赖插件添加另一个执行块来进行设置:

<execution><id>copy</id><phase>package</phase><goals><goal>copy</goal></goals><configuration><artifactItems><artifactItem><groupId>our-company</groupId><artifactId>our-application-ear</artifactId><version>${app.version}</version><type>ear</type><outputDirectory>${jboss.install.dir}/jboss-as-${jboss.version}/standalone/deployments</outputDirectory></artifactItem><artifactItem><groupId>com.oracle</groupId><artifactId>ojdbc6</artifactId><version>${ojdbc.version}</version><outputDirectory>${jboss.install.dir}/jboss-as-${jboss.version}/standalone/deployments</outputDirectory><destFileName>ojdbc6.jar</destFileName></artifactItem></artifactItems></configuration>
</execution>

最后但并非最不重要的一点是,我们还希望根据需要调整标准配置文件。 我们可以使用maven-resources-plugin替换每个文件中的变量值。 因此,我们将这些文件的模板添加到JBoss模块的resources文件夹中,并调用目标副本资源:

<plugin><artifactId>maven-resources-plugin</artifactId><version>2.6</version><executions><execution><id>copy-jboss-configuration</id><phase>package</phase><goals><goal>copy-resources</goal></goals><configuration><outputDirectory>${jboss.install.dir}/jboss-as-${jboss.version}/standalone/configuration</outputDirectory><resources><resource><directory>src/main/resources/jboss/standalone/configuration</directory><filtering>true</filtering></resource></resources></configuration></execution><execution><id>copy-jboss-bin</id><phase>package</phase><goals><goal>copy-resources</goal></goals><configuration><outputDirectory>${jboss.install.dir}/jboss-as-${jboss.version}/bin</outputDirectory><resources><resource><directory>src/main/resources/jboss/bin</directory><filtering>true</filtering></resource></resources></configuration></execution></executions>
</plugin>

可以在命令行中使用-D选项指定过滤值。 如果团队中有多个成员,则还可以为每个用户创建一个包含其特定配置值的属性文件。 如果使用OS用户作为文件名,则可以通过当前登录用户的名称轻松选择文件。 这样,每个团队成员都可以通过简单地运行以下命令轻松地设置自己的完全配置的应用程序服务器实例:

mvn clean install -PsetupAs

为了防止使用下一个clean调用删除新配置的服务器,我们为常规构建禁用了maven clean插件:

<plugin><artifactId>maven-clean-plugin</artifactId><version>2.5</version><configuration><skip>false</skip></configuration>
</plugin>

在上面创建的setupAs配置文件中,我们当然必须启用它,以便仅通过调用“ mvn clean -PsetupAs”就可以删除整个安装。 现在切换到较旧的分支很容易,因为我们不会浪费任何时间寻找正确的配置…

参考:来自Martin's Developer World博客的JCG合作伙伴 Martin Mois 使用maven设置应用服务器 。

翻译自: https://www.javacodegeeks.com/2013/10/setting-up-your-application-server-with-maven.html

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

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

相关文章

[洛谷P3178][HAOI2015]树上操作

题目大意&#xff1a;有一棵点数为 $N$ 的树&#xff0c;以点 1 为根。然后有 $M$ 个操作。 1. 把 $x$ 的点权增加 $a$ 。 2. 把 $x$ 为根的子树中所有点的点权都增加 $a$ 。 3. 询问 $x$ 到根的路径中所有点的点权和。 题解&#xff1a;树链剖分模板题 卡点&#xff1a;我真的…

实现 通过数据库里一个字段值相等 则把 他合为一条数据

需求&#xff1a; 把红色合为一条数据&#xff0c;绿色合为一条数据 结果&#xff1a; 不多说直接上代码......................................................... // 先查所有数据 const goods await service.goods.findAllGoodsWithParams({where: params,offset: ctx.p…

CSS定义字体间距 字体行与行间距

1 2     letter-spacing:像素&#xff08;字母或中文字的左右间距&#xff09;3 4 word-spacing:像素&#xff08;两个单词之间的左右间距&#xff09;5 6 line-height:像素&#xff08;两行之间的间距&#xff09;7 8 text-decoration:字体的装饰&am…

float与double类型参数区别_8大基本数据类型及包装类,不知道这些点别说自己是大佬...

一般地&#xff0c;当需要使用数字的时候&#xff0c;我们通常使用内置数据类型&#xff0c;如&#xff1a;byte、int、long、double 等。然而&#xff0c;在实际开发过程中&#xff0c;我们经常会遇到需要使用对象&#xff0c;而不是内置数据类型的情形。为了解决这个问题&…

宣布EAXY:在Java中简化XML

Java中的XML库是一个雷区。 操作和读取XML所需的代码量令人震惊&#xff0c;使用不同的库遇到类路径问题的风险很大&#xff0c;并且命名空间的处理带来了很多混乱和错误。 最糟糕的是&#xff0c;情况似乎并没有改善。 一位同事让我意识到JOOX库。 这是解决这些问题的一个很好…

9-客户端集成IdentityServer

1-创建客户端的webapi项目 E:\coding\netcore\IdentityServerSample>dotnet new webapi --name IdentityCredentialApi 2-在需要启用授权的方法上增加Authorize标签 3-使用nuget工具安装 IdentityServer4.AccessTokenValidation 4-启用客户端授权&#xff0c; 需要配置连接…

js parseInt()与Number()区别

说到转换成数字类型&#xff0c;我首先想到的是parseInt&#xff08;&#xff09;方法&#xff0c;后来接触多了才发现还有一个Number()方法&#xff0c;同样是转换成数字类型&#xff0c;这两种方法有什么不同的呢&#xff1f; 1.parseInt&#xff08;&#xff09;&#xff1a…

java大小端字节流解析_玩转socket之字节流操作--拼包、拆包

玩转socket之字节流操作--拼包、拆包我们开发中用得最多的HTTP协议及超文本传输协议&#xff0c;是一种基于TCP/IP的文本传输协议。基本很少碰到字节流操作。但是我过我们要用socket&#xff0c;实现一套基本TCP/IP协议的自定义协议&#xff0c;那么&#xff0c;对于字节流的操…

js替换数组中字符串实例

这个是替换数组中的一个对象字符串&#xff1b; 直接上代码&#xff1a; 1 var aaa[ 2 {"name":"张珊","sex":"man"}, 3 {"name":"李斯","sex":"woman"}, 4 …

ie浏览器升级_微软呼吁用户停用IE浏览器 2020年将不再更新升级

驱动中国2019年2月10日消息 IE浏览器作为美国微软公司推出的一款网页浏览器成为许多人接触互联网初选&#xff0c;深受不少用户喜欢但这款流畅多年的浏览器正式遭弃用&#xff01;今日微软网络安全专家在在官方Winhows IT Pro上发帖呼吁用户停止使用IE浏览器&#xff01;微软网…

有条件忽略测试的JUnit规则

我一直认为使用Ignore停用测试是一个坏主意。 例外&#xff0c;这可能是一种将间歇性失败的测试放入隔离区以供以后处理的方法&#xff08;如Martin Fowler 在此处所述 &#xff09;。 随着越来越多的测试不断被忽略和遗忘&#xff0c;这带来了测试套件衰减的危险。 因此&#…

【学亮IT手记】PL/SQL游标编程

游标提供了一种从表中检索数据并进行操作的灵活手段&#xff0c;主要用在服务器上&#xff0c;处理由客户端发送给服务器端的sql语句&#xff0c;或者是批处理、存储过程、触发器中的数据处理请求。 显式游标 是由用户声明和操作的一种游标&#xff0c;通常用于将查询出的结果集…

CentOS安装zookeeper

第一步&#xff0c;先去Apache下载安装包 http://mirror.bit.edu.cn/apache/zookeeper/ 第二步&#xff0c;上传到服务器并解压 tar -zxvf zookeeper-3.4.6 第三步&#xff0c;新建一个文件夹 #先改个名 mv zookeeper-3.4.6 zookeeper cd zookeeper mkdir data 第四步&#xff…

php根据id查找条件怎么写_thinkphp where()条件查询

今天来给大家讲下查询最常用但也是最复杂的where方法&#xff0c;where方法也属于模型类的连贯操作方法之一&#xff0c;主要用于查询和操作条件的设置。where方法的用法是ThinkPHP查询语言的精髓&#xff0c;也是ThinkPHP ORM的重要组成部分和亮点所在&#xff0c;可以完成包括…

3分钟简单了解 prototype 和 __proto__

关于prototype 1. 所有的函数都会有一个prototype属性&#xff0c;属性值是一个普通对象&#xff1b; 2. 当我们去new一个构造函数的实例时&#xff0c;构造函数的原型对象(prototype)会被赋值给它实例的[[Prototype]]属性上&#xff1b; 3. prototype可被称为“显式原型”。…

rdlc报表 矩形高固定_固定资产条码管理系统特点分析

固定资产条码管理系统的特点都有什么&#xff1f;固定资产是维持企业稳定健康发展的重要物质保障&#xff0c;若想最大化发挥固定资产的效能作用&#xff0c;满足生产经营管理的需求&#xff0c;提高应对企业内外部经营环境变化的能力&#xff0c;企业管理者就必须及时了解固定…

Spring 4中@ControllerAdvice的改进

在Spring 4的许多新功能中&#xff0c;我发现了ControllerAdvice的改进。 ControllerAdvice是Component的特殊化&#xff0c;用于定义适用于所有RequestMapping方法的 ExceptionHandler&#xff0c; InitBinder和ModelAttribute方法。 在Spring 4之前&#xff0c; ControllerAd…

bzoj 2007 [Noi2010]海拔——最小割转最短路

题目&#xff1a;https://www.lydsy.com/JudgeOnline/problem.php?id2007 一个点的高度一定不是0就是1。答案一定形如一个左上角的连通块全是0的点、一个右下角的连通块全是1的点。 注意从东到西还有从南到北的边也有用&#xff01;因为不一定是一个阶梯形的&#xff0c;还可以…

php 四维数组_PHP 多维数组

PHP - 两维数组两维数组是数组的数组(三维数组是数组的数组的数组)。首先&#xff0c;让我们看看下面的表格&#xff1a;品牌库存销量Volvo3320BMW1715Saab52Land Rover1511我们能够在两维数组中存储上表中的数据&#xff0c;就像这样&#xff1a;$cars array(array("Vol…

Vue于React特性对比(二)

一&#xff0c;关于响应式数据更新方式的实现 1&#xff09;只有在data里面定义的数据才会有响应式更新 vue依赖的defineProperty的数据劫持加上依赖数据&#xff0c;实现数据的响应式更新。可以称之为依赖式的响应。因为依赖所以注定了只会更新与data相关的数据。 2&#xff0…