Maven 2 从Maven运行Ant任务
我正在使用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.0.0系统 ${basedir}/src/main/webapp/WEB-INF/lib/test-lib-1.0.0.jar 所以,基本上我现在做的是: 1) 运行ant构建自定义库(test-lib-1.0.0.jar)Maven 2 从Maven运行Ant任务,maven-2,ant,Maven 2,Ant,我正在使用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/
2) run:mvncile,使用自定义库编译我的项目 有没有一个选项可以让我从中完成这一切(打包定制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> maven antrun插件 1.4 ???????在这里放什么?????/阶段> 跑 但是,当运行:
mvncile
时,它会抱怨缺少工件:test-lib-1.0.0.jar
。
我使用编译、生成资源,。。。在
标记中,但似乎什么都不起作用
使用这个插件可以解决这个问题吗?当使用Maven Antrun插件时,Maven试图解决为Antrun调用构建的依赖项,因此您面临一个鸡和蛋的问题:您不能声明将在Antrun执行期间创建的依赖项,该依赖项需要运行。这不行 我的建议是对
测试库进行mavenize,将其包括在项目构建中,并声明对它的常规依赖关系。换句话说,我的意思是从Ant移动到Maven来构建测试库并进行设置。
为了更“直观”地说明问题,可以这样做:
my-project
|-- my-module
| |-- src
| | `-- main
| | `-- java
| `-- pom.xml
|-- test-lib
| |-- src
| | `-- main
| | `-- java
| `-- pom.xml
`-- pom.xml
其中,my project/pom.xml
是一个聚合pom,带有pom
,并在
元素下列出模块:
<modules>
<module>my-module</module>
<module>test-lib</module>
</modules>
我只是在这里提供一个非常高层次的概述,您需要阅读一些文档以了解详细信息,我不能涵盖所有内容。从Sonatype的第一本书开始(下面的链接)
但这将是正确的方法(并且您不应该(ab)使用system
scoped dependencies)
工具书类
谢谢你的回答,帕斯卡!好的,所以基本上我需要做不同的事情。但是“mavenizeyourtestlib”是什么意思呢?您的意思是我应该在本地maven存储库上安装测试库吗?我试图避免这种情况,因为测试库是一个非常小的库,实现了我项目中使用的API,我当然想在其他项目中使用它。@Igor不,我的意思不是只在本地存储库中安装测试库,而是创建一个特定的maven模块并将测试库源放在其中(即从ant移动到maven来构建它)因此,如果需要,您可以将其打包作为构建的一部分(相反,它是一个小库,这不是一个问题)。@Pasacal我如何在项目构建中包含测试库,然后声明对它的标准依赖关系?如果您能为我提供一些文档和示例,我将不胜感激,因为我对maven还很陌生。塔克斯@Igor:阅读免费在线书籍:@Igor@seanizer(谢谢)提供的链接绝对是一个开始的好地方。更准确地说,从第一本书开始(不要被“书”这个词吓到)。
<dependency>
<groupId>your.group.id</groupId>
<artifactId>test-lib</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>