maven ant_如何在Maven中运行Ant目标?

maven ant

maven-antrun-plugin允许我们在各种maven构建阶段中运行ant目标。 我将专门为具有开发环境的开发人员解释maven-antrun-plugin的非常实际的用法。 apache-maven-logo

通常,使用maven build,您会将项目捆绑到war文件或ear文件中。 您可以使用maven-antrun-plugin将此war或ear文件直接复制到服务器部署文件夹中。 如果您的服务器是tomcat,则可以轻松地将存档文件直接复制到“ webapps ”文件夹。 一些开发人员习惯于将存档文件手动复制到服务器部署文件夹中,即使他们正在开发中。 对于他们来说,这篇文章将非常有帮助。

如果您希望在每次构建项目时都使用maven-antrun-plugin将存档文件复制到服务器部署文件夹中,则可以将以下插件添加到pom.xml文件中,并根据需要使用任何ant目标。

我要将这个插件放在哪个pom.xml文件中?

这是一个好问题。 如果您有多模块项目,则可能应该有耳模块或战争模块。 选择该模块的pom.xml文件,然后在其中放置以下插件。 在大多数情况下,当您使用该项目模块时,它将是在根级别上构建项目时最后建立的模块,maven将在项目模块的目标目录内创建war文件或ear文件。 我们可以配置maven-antrun-plugin,以便它将war文件或ear文件复制到服务器部署文件夹中。

就我而言,我有多个模块项目,一个模块是一个Web模块。 我应该将maven-antrun-plugin放入Web模块的pom.xml文件中。

<build><finalName>shims-web</finalName><plugins><plugin><artifactId>maven-antrun-plugin</artifactId><version>1.7</version><executions><execution><phase>install</phase><configuration><target><copy file="${project.build.directory}/shims-web.war" todir="${env.CATALINA_HOME}/webapps"/></target></configuration><goals><goal>run</goal></goals></execution></executions></plugin></plugins>
</build>

如果您查看上述pom.xml文件的片段,我将“ install ”作为执行阶段。 它只是说在Maven构建的安装生命周期阶段之后立即执行此ant目标” 。 通过执行“ install ”,maven会将整个项目作为war文件或ear文件打包到本地存储库中,以作为本地其他项目中的依赖项。 同样,这也会在工作区的目标目录中创建相同的文件。

我们的目标是将该文件从目标控制器复制到带有构建的服务器部署文件夹中。 $ {env.CATALINA_HOME}将引用我们的tomcat安装目录。

现在构建您的项目或项目模块。 您可以导航到我们的修改后的pom.xml所在的项目目录或项目模块目录。 运行以下命令。

$mvn clean install

上面的命令将遍历所有子项目并运行clean ,然后install (包括所有先前的步骤)。 您可以在构建整个项目的根项目级别运行该命令,也可以针对仅构建该项目的特定项目模块运行该命令。

.......................[INFO] --- maven-antrun-plugin:1.7:run (default) @ shims-web ---[INFO] Executing tasksmain:[copy] Copying 1 file to /home/vinesh/apache-tomcat-7.0.25/webapps[INFO] Executed tasks[INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS ........................

如果您有时使用m2eclipse来构建项目,则可能会遇到如下奇怪的情况。 我们希望Maven在构建完成后将存档文件复制到服务器的部署文件夹中。 但是有时,maven会通过创建目录结构来将存档文件复制到项目工作区文件夹本身,该目录结构在我们的ant复制目标的pom.xml文件中称为目标目录。

例如,在这种情况下,它将在我们的本地工作空间文件夹中创建以下目录结构,而不是将文件复制到服务器文件夹中。 请看下面的图片。

MVN

我们不希望出现这种情况。

我们如何克服这个问题?

您必须通过指定CATALINA_HOME环境变量来在Eclipse中编辑Maven构建目标。 您可以按照以下步骤进行操作。

在Eclipse中打开“ 运行配置 ”窗口,然后展开“ Maven Build ”类别。 您可以看到到目前为止已创建的所有Maven目标,并已在其中列出。 选择使用“ 全新安装 ”目标构建项目的Maven目标。

然后打开“ 环境 ”选项卡。 您可以在此处CATALINA_HOME环境变量添加新变量,如下所示。

EVN

单击“应用”按钮,然后再次运行您的Maven目标。 仔细查看您的Eclipse控制台。 您可以看到maven正在将存档文件复制到服务器部署文件夹中。

参考: 如何使用Maven运行Ant目标? 来自我们的JCG合作伙伴 Semika Kaluge在Skillshared博客上。

翻译自: https://www.javacodegeeks.com/2013/07/how-to-run-ant-targets-with-maven.html

maven ant

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

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

相关文章

java中打开文件显示_在默认文件资源管理器中打开文件,并使用JavaFX或普通Java突出显示它...

我想做标题所说的.部分解决方案例如,在Windows中,您可以使用以下代码在默认资源管理器中打开文件并突出显示它.(虽然它需要修改包含空格的文件)&#xff1a;/*** Opens the file with the System default file explorer.** param path the path*/public static void openFileLo…

win10下vscode配置c语言环境

1、C编译器下载 C编译器&#xff08;MinGW-W64 GCC&#xff09;的下载&#xff1a;点击官方下载 或者点击网盘下载提取码为karj 下载完成后解压&#xff0c;将解压后的文件夹放到合适的位置&#xff0c;点开其bin子文件夹&#xff0c;复制路径。 2、win10下环境变量配置 ①…

java jdbc 乱码_【求助】为什么用纯java jdbc插入mysql一直乱码

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼String str "人造革";//gbk编码使用2个字节表示一个汉字,所以buffer的长度应该为6byte[] buffer str.getBytes("gbk");//[-56, -53, -44, -20, -72, -17]System.out.println("gbk编码的byte信息:"…

Java面向对象(10)--super关键字

在子类中使用super来调用父类中的指定操作&#xff1a; ①super可用于访问父类中定义的属性 ②super可用于调用父类中定义的成员方法 ③super可用于在子类构造器中调用父类的构造器 super的追溯不仅限于直接父类。 我们可以在子类的方法或构造器中&#xff0c;通过使用"s…

Java的Gradle依赖关系,使用编译还是实现?

当我向一位同事解释如何将Gradle用于Java项目时&#xff08;他正在远离Maven &#xff09;&#xff0c;我们遇到了各种代码示例。 有些示例将编译配置用于依赖项&#xff0c;而其他示例则使用Implements和api 。 dependencies { compile commons-httpclient:commons-httpclien…

Java面向对象(11)--多态性

父类 变量名 new 子类&#xff08;&#xff09;&#xff1b;对象的多态性&#xff1a;父类的引用指向子类的对象 Java引用变量有两个类型&#xff1a;编译时类型和运行时类型。编译时类型由声明 该变量时使用的类型决定&#xff0c;运行时类型由实际赋给该变量的对象决定。简…

java如何替换字符串0A_我有一个带有“ \ u00a0”的字符串,我需要将其替换为“” str_replace failed...

我需要清理来自各种Microsoft Office套件应用程序(Excel&#xff0c;Access和Word)的字符串(复制/粘贴)&#xff0c;每个应用程序都有自己的一组编码。我将json_encode用于调试目的&#xff0c;以便能够看到每个编码的字符。我可以使用str_replace清除到目前为止找到的所有内容…

Java面向对象(12)--对象类型转换 (Casting )

基本数据类型的Casting&#xff1a; ①自动类型转换&#xff1a;小的数据类型可以自动转换成大的数据类型 如long g20; double d12.0f ②强制类型转换&#xff1a;可以把大的数据类型强制转换(casting)成小的数据类型 如 float f(float)12.0; int a(int)1200L Java对象的强制…

知识蒸馏 循环蒸馏_Java垃圾收集蒸馏

知识蒸馏 循环蒸馏串行&#xff0c;并行&#xff0c;并发&#xff0c;CMS&#xff0c;G1&#xff0c;Young Gen&#xff0c;New Gen&#xff0c;Old Gen&#xff0c;Perm Gen&#xff0c;Eden&#xff0c;Tenured&#xff0c;Survivor Spaces&#xff0c;Safepoints和数百个JVM…

Java面向对象(13)--==操作符与equals方法

&#xff1a;运算符 可以使用在基本数据类型变量和引用数据类型变量中 ①如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等(类型不一定要相同&#xff0c;当要能够统一)。 int i 9;int j 9;double d 9.0;System.out.println(i j); //trueSystem.out.println…

ubuntu php pear_ubuntu下安装pear包(lynx和php-cli安装)

如果已经安装了lynx和php5-cli&#xff0c;那么就可以很方便的安装pear包了。如果安装了lynx和php5-cli,直接运行 # lynx -source http://pear.php.net/go-pear | php 就可以出现安装界面了。直接按提示回车就行了。遇到y/n选择直接y就可以了。不需要输入任何东西就可以全部安装…

Javascript中的AES加密和Java中的解密

AES代表高级加密系统&#xff0c;它是一种对称加密算法&#xff0c;很多时候我们需要在客户端加密一些纯文本&#xff08;例如密码&#xff09;并将其发送到服务器&#xff0c;然后由服务器解密以进行进一步处理.AES加密和解密更加容易在相同的平台&#xff08;例如Android客户…

toString()方法使用

toString()方法在Object类中定义&#xff0c;其返回值是String类型&#xff0c;返回类名和它的引用地址。在进行String与其它类型数据的连接操作时&#xff0c;自动调用toString()方法。 Account account new Account(); System.out.println(account); //com.atyeman.Account…

php 睡眠,php输出与sleep()

您要实现的是从PHP向浏览器的增量输出.这是否可实现取决于您的服务器以及您如何调用PHP.FastCGI下的PHP当PHP在FastCGI下而不是作为Apache模块运行时,你可能更容易遇到这种问题,因为服务器和PHP进程之间的耦合并不紧密耦合.一旦数据离开PHP进程,FastCGI通信就使用输出缓冲,只有…

Java面向对象(14)--包装类的使用

针对八种基本数据类型定义相应的引用类型—包装类&#xff08;封装类&#xff09;&#xff0c;有了类的特点&#xff0c;就可以调用类中的方法。 基本数据类型 <——> 包装类&#xff0c;String——>包装类 ①装 int num 9; Integer int1 new Integer(num); Syste…

php读取mp3信息,PHP获取MP3的媒体标签信息

PHP如何获取MP3的媒体标签信息&#xff1f;本文主要介绍了PHP获取音频文件的相关信息的相关资料。希望对大家有所帮助。项目需求&#xff1a;现在有一个音频文件上传的功能&#xff0c;在上传后PHP需要获取这个音频文件的相关信息&#xff0c;例如&#xff1a;时长等&#xff0…

资源泄漏如何处理_处理缓慢的资源泄漏

资源泄漏如何处理使用Java监视器查找资源泄漏 查找缓慢的资源泄漏是使应用程序服务器长时间保持正常运行的关键。 在这里&#xff0c;我解释了如何使用Java监视器来发现缓慢的资源泄漏&#xff0c;以及如何验证它们是否是实际泄漏&#xff0c;而不仅仅是额外的预分配到某些HTTP…

Integer包装类特殊之处

Integer内部定义了IntegerCache结构&#xff0c;IntegerCache中定义了 Integer[]&#xff0c;保存了从-128~127范围的整数。如果我们使用自动装箱的方式&#xff0c;给Integer赋值的范围在 -128~127范围内时&#xff0c;可以直接使用数组中的元素&#xff0c;不再去new了。目的…

php中间件怎么使用,laravel框架中间件简单使用方法示例

本文实例讲述了laravel框架中间件简单使用方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;laravel内置了一个中间件来验证用户是否经过认证&#xff0c;如果用户没有经过认证&#xff0c;中间件会将用户重定向到登录页面&#xff0c;否则如果用户经过认证&#xf…

在Spring WebFlux中创建多个RouterFunction

在这篇文章中&#xff0c;我们将研究在Spring WebFlux中为不同的逻辑域定义多个路由器功能。 如果您正在创建“微服务”&#xff0c;则可能不会出现问题&#xff0c;因为您很可能仅在每个服务的单个域中工作&#xff0c;但是如果不是这样&#xff0c;则可能需要在应用程序中包含…