从 Maven 运行 Ant 任务

2023-12-21

我使用 Ant 构建自定义 jar 库,然后在 Maven 中将其用作依赖项。



<dependency>
    <groupId>test-lib</groupId>
    <artifactId>test-lib</artifactId>
    <version>1.0.0system</scope>
    <systemPath>${basedir}/src/main/webapp/WEB-INF/lib/test-lib-1.0.0.jar</systemPath>
</dependency>
  

所以,基本上我现在做的是:

1)运行ant来构建自定义库(test-lib-1.0.0.jar)
2)运行:mvncompile,使用自定义库等来编译我的项目。

我是否有一个选项可以完成这一切(打包自定义 jar 和编译项目) 马文? 我找到了 maven run 插件,这是我的设置:



<plugin>
    <artifactId>maven-antrun-plugin</artifactId>
    <version>1.4
    <executions>
        <execution>
            <phase>?????what to put here?????/phase>
            <configuration>
                <tasks>
                    <ant antfile="${basedir}/build.xml">
                        <target name="prepare-test-lib" />
                    </ant>
                </tasks>
            </configuration>
            <goals>
                <goal>run</goal>
            </goals>
        </execution>
    </executions>
</plugin>
  

但是,运行时:mvn compile它抱怨缺少工件:test-lib-1.0.0.jar。 我使用过编译,生成资源,...<phase/>标签,但似乎没有任何作用。

是否可以使用此插件以某种方式解决这个问题?


使用 Maven Antrun Plugin 时,Maven 会尝试解析构建的依赖关系类路径 http://maven.apache.org/plugins/maven-antrun-plugin/examples/classpaths.html对于 AntRun 调用,您将面临先有鸡还是先有蛋的问题:您无法声明将在 AntRun 执行期间创建的依赖项,而该依赖项需要运行该依赖项。这是行不通的。

我的建议是mavenize你的test-lib,将其包含在您的项目构建中并声明对其的常规依赖项。换句话说,我的意思是从 Ant 迁移到 Maven 来构建你的test-lib并设置多模块项目 http://www.sonatype.com/books/mvnex-book/reference/multimodule.html。 为了更“直观地”说明事情,像这样:

my-project
|-- my-module
|   |-- src
|   |   `-- main
|   |       `-- java
|   `-- pom.xml
|-- test-lib
|   |-- src
|   |   `-- main
|   |       `-- java
|   `-- pom.xml
`-- pom.xml

Where my-project/pom.xml是一个聚合 pom,其中包含<packaging>pom</packaging>并列出 a 下的模块<modules>元素:

<modules>
  <module>my-module</module>
  <module>test-lib</module>
</modules>

还有哪里my-module/pom.xml声明对test-lib人工制品:

<dependency>
  <groupId>your.group.id</groupId>
  <artifactId>test-lib</artifactId>
  <version>1.0-SNAPSHOT</version>
</dependency>

我只是在这里给出一个非常高层次的概述,您需要阅读一些文档以了解详细信息,我无法涵盖所有​​内容。从 Sonatype 的第一本书开始(链接如下)。

但这是正确的方法(而且你不应该(ab)使用system范围依赖)。

参考

  • Maven:权威指南 http://www.sonatype.com/products/maven/documentation/book-defguide
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 Maven 运行 Ant 任务 的相关文章

随机推荐

  • 从远处看时,ThreeJS 纹理是像素化的

    我正在使用 webGL 和 ThreeJS 然后我遇到了以下问题 从远处看时 具有大图像的纹理会出现像素化 检查示例 http jsfiddle net 4qTR3 1 http jsfiddle net 4qTR3 1 下面是代码 var
  • 有没有为C#实现的图数据结构

    我试图找到一种在 C 中重用的图形数据结构 但没有成功 当然 我可以借用数据结构书籍 但我希望它更具商业实用性 如果您能告诉我实现图的最佳方法是什么 我将不胜感激 谢谢 快速图表 https github com YaccConstruct
  • GNU emacs 相当于 func-menu

    GNU emacs 是否有等效的 func menu 当我可以访问 xemacs 时 我使用了 func menu 并且与 speedbar 或 sr speedbar 相比 我更喜欢它的行为 具体来说 我喜欢只显示当前文件的功能 功能列表
  • 在程序包管理器控制台窗口中进入\退出 PowerShell 模式

    我想我不小心进入了 PowerShell 模式 所以目前我的控制台显示 PS gt c dev 我想知道如何退出 PS gt 模式并返回 PM 模式 我希望控制台窗口显示 PM gt 以便我可以安装软件包 这样的事情我也经历过 我尝试重新启
  • Spark的Column.isin函数不接受List

    我正在尝试从 Spark Dataframe 中过滤掉行 val sequence Seq 1 2 3 4 5 df filter df column isin sequence 不幸的是 我收到不支持的文字类型错误 java lang R
  • 在 python 中打印混淆矩阵的精度

    这是我的代码 from sklearn metrics import confusion matrix cm confusion matrix y test y pred 这就是我得到的 0 1 0 102 39 1 73 29 我怎样才能
  • IE10、IE11 中的跨浏览器 css 渐变

    我在所有浏览器中为深色按钮做了渐变 看起来不错 除了 IE10 IE11 版本 顶部和底部有浅色条纹 我通过 colorzilla 渐变编辑器生成渐变 链接到按钮 http buttons selcet com ua HTML div cl
  • Webpack 捆绑导致未知提供者 $injector/unpr 错误

    未知提供商 NavigationCtrl Restangular 我目前正在处理我的旧项目 让它们再次完全工作 作为一个小的重构练习 我遇到了一些不再编译的 AngularJS 代码 我相信这取决于更新的依赖项 因为我至少 3 年没有更改此
  • 实体框架在生成数据库时创建下划线列

    我有一个简单的对象模型如下 public class Product public long ProductId get set public int CategoryId get set public Category Category
  • Rails3 Google 地图使用 selenium 进行测试

    我正在尝试使用 Rails3 测试谷歌地图应用程序 我使用黄瓜与水豚和硒进行 JavaScript 测试 我有一张地图 等待谷歌地图加载 然后向我的服务器发送 ajax 请求 在服务器上我获取要插入地图中的位置 我想知道硒是否可以等待谷歌地
  • 验证一个整数并使其为 5 位数字

    我正在上我的第一堂 Java 课 我需要询问邮政编码 我知道如果他们不输入 5 位数字 如何要求新输入 但如果他们输入非整数 我该如何要求新输入 这是我所拥有的 import java util Scanner public class A
  • 将原语传递给 OCMock 的存根

    我正在学习如何使用 OCMock 来测试我的 iPhone 项目 我有这样的场景 一个带有getHeightAtX andY 方法和 Render 类使用HeightMap 我正在尝试使用一些单元测试渲染HeightMap嘲笑 这有效 id
  • jquery的promise方法到底是如何工作的?

    我真的不明白什么delegate and promise are 根据文档 delegate会将选择器和事件绑定到某种包装容器 该包装容器可以在以后再次用于当前和将来的项目 promise 如果新加载的所有内容都匹配 则会将事物重新映射回第
  • 如何在 Android 中正确地将像素坐标转换为画布坐标?

    我正在捕捉一个MotionEvent在 Android 设备上长按SurfaceView用一个GestureListener 然后我需要翻译的坐标MotionEvent到画布坐标 我可以从中生成自定义地图坐标 不是 Google 地图 根据
  • C# WebBrowser控件将网页保存为图像,重定向问题

    我在控制台应用程序中使用 Web 浏览器控件 它是以编程方式创建的 它通过一个 url 并使用 DrawToBitmap 将页面保存为图像文件 它似乎适用于许多网址 但不适用于某些网址 包括 www google co uk 它保存了一个空
  • 如何在 CoffeeScript 粗箭头回调中引用实际的“this”?

    标题说明了一切 当我在 CoffeeScript 中使用粗箭头时 它会存储this首先在调用该函数之前 例如 class myClass constructor gt element id element click gt myMethod
  • React 中的 HTML5 音频标签

    我想在我的 React 应用程序中使用一个简单的 HTML5 音频标签 我的组件如下所示 import React from react class AudioPlayer extends React Component render re
  • 清理magento缓存时开始和结束标记不匹配:/Varien/Simplexml/Config.php

    Entity line 60 parser error Opening and ending tag mismatch config line 28 and confg in home theprint public html lib Va
  • Eclipse Luna Dark 主题,语法着色重置。如何禁用?

    原问题 Eclipse luna 主题问题 https stackoverflow com questions 24628143 eclipse luna theme issue 相关问题 如何使 Eclipse 颜色设置永久生效 http
  • 从 Maven 运行 Ant 任务

    我使用 Ant 构建自定义 jar 库 然后在 Maven 中将其用作依赖项