gpt4 book ai didi

maven-2 - 从 Maven 运行 Ant 任务

转载 作者:行者123 更新时间:2023-12-02 02:31:54 25 4
gpt4 key购买 nike

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

<依赖>
测试库
测试库
1.0.0system
${basedir}/src/main/webapp/WEB-INF/lib/test-lib-1.0.0.jar


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

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

我是否可以选择从
马文?
我找到了 maven run 插件,这是我的设置:

<插件>
maven-antrun-plugin
<版本>1.4
<执行>
<执行>
?????这里放什么??????/phase>
<配置>
<任务>





<目标>
<目标>运行





但是,运行时: mvn compile它提示缺少工件: test-lib-1.0.0.jar .
我在 <phase/> 中使用了编译、生成资源...标签,但似乎没有任何效果。

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

最佳答案

使用 Maven Antrun 插件时,Maven 会尝试解析依赖项以构建 ClassPaths对于 AntRun 调用,您因此面临先有鸡还是先有蛋的问题:您不能声明将在 AntRun 执行期间创建的需要此依赖项运行的依赖项。这是行不通的。

我的建议是将您的 test-lib ,将其包含在您的项目构建中并声明对它的常规依赖。换句话说,我的意思是从 Ant 迁移到 Maven 来构建你的 test-lib。并设置 a multi-modules project .
为了更“直观地”说明事物,如下所示:

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

在哪里 my-project/pom.xml是一个带有 <packaging>pom</packaging> 的聚合 pom并列出 <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: The Definitive Guide
  • 关于maven-2 - 从 Maven 运行 Ant 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3504000/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com