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

通常,使用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会通过创建目录结构将归档文件本身复制到项目工作区文件夹中,在蚂蚁复制目标的pom.xml文件中,我们已经将目录结构称为目标目录。

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

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

我们该如何克服呢?

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

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

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

单击“应用”按钮,然后再次运行您的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目标?相关推荐

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

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

  2. java ant与maven_如何在maven中使用ant

    如何在maven编译时候运行ant脚本? 使用专门的antrun插件,并且在target标签内部加入ant的代码         maven-antrun-plugin         1.6     ...

  3. idea test包_6.Flinkx如何在idea中运行?

    Flinkx如何在idea中运行? 1.下载zip包 Flinkx链接 2.解压jar包 普通的解压软件解压即可 3.解压的bin目录 window环境下双击解压后的flinkx-1.8_releas ...

  4. pom中运行ant命令

    有时候我们需要在pom中运行ant命令,比如jar生成后做些什么等,可以像下面这样实现: <plugin><groupId>org.apache.maven.plugins&l ...

  5. 如何用xapmm测试php_如何在Xampp中运行PHP程序?

    成为经过认证的专业PHP是最流行的web后端编程语言.PHP代码将作为web服务器模块或命令行界面运行.要运行PHP for the web,您需要安装像Apache这样的web服务器,还需要像MyS ...

  6. 函数调用关系图如何画_程序是如何在 CPU 中运行的(二)

    笔者能力有限,如果文中出现错误的地方,还请各位朋友能够给我指出来,我将不胜感激,谢谢~ 前言 在上一篇文章中<程序是如何在 CPU 中运行的(一)>笔者讲述了程序中一条一条指令以及一条一条 ...

  7. maven引入hadoop_如何在maven中引用hadoop v2.3.0 jar?

    我的pom具有以下依赖性 . org.apache.hadoop hadoop-mapreduce 2.3.0 但是,在eclipse中,我看到以下错误 . 容器'Maven Dependencies ...

  8. 如何在docker中运行MySQL实例(转载)

    如何在docker中运行MySQL实例 转自:https://blog.csdn.net/siying8419/article/details/79670246 通常初学者学习docker时,不太清楚 ...

  9. 数据绑定如何在AngularJS中运行?

    本文翻译自:How does data binding work in AngularJS? How does data binding work in the AngularJS framework ...

最新文章

  1. jQuery的.bind()、.live()和.delegate()之间区别
  2. 工具-Xmind常用快捷键/使用
  3. 2016蘑菇街编程题:搬圆桌
  4. CAP 理论 —— 最通俗的解释
  5. VisualSVN服务器的本地搭建和使用
  6. 仿path首页滑动效果
  7. 几种常用 css3 选择器解释
  8. TDD---测试驱动开发(1)
  9. DDoS攻击重大历史事件
  10. matlab中遗传算法代沟,谢菲尔德大学的MATLAB遗传算法
  11. 抽样分布(卡方分布、t分布、F分布)
  12. edge浏览器开启夜间模式
  13. vue.js和vue.main.js下载地址
  14. proe安装后 显示服务器未连接,proe许可证服务器主机名
  15. 越狱苹果手机导出网易云音乐歌曲(以及缓存文件转换)
  16. 【Mysql】 update语句更新原理
  17. 广东开放大学形考任务财务会计(二)(专,2022秋)形成性考核3答案
  18. tensorflow 歌曲题材分类
  19. 【关于微阵列芯片和RNA-seq的比较】
  20. 巴斯卡三角形(Pascal)

热门文章

  1. android查看wifi是否双频,Android判断wifi是5G还是2.4G
  2. python嵌套列表字典_python中嵌套列表转为字典
  3. 进程与服务的签名_苹果app签名需要注意哪几点
  4. 把本地库推送到github远程库
  5. java launcher_JAR清单类路径不仅适用于Java Application Launcher
  6. Spring Boot Actuator:在其顶部具有MVC层的自定义端点
  7. github和maven_在github上托管Maven存储库(包含源代码和javadoc)
  8. Java中的责任链设计模式
  9. q7goodies事例_Java 8 Friday Goodies:SQL ResultSet流
  10. 扩展枚举功能的两种方法