Maven来启动ant任务,然后将其作为依赖项使用



我有一个项目,其中有多个.jar文件。在过去,我有一个build.xml文件,我在Ant中运行它,它从这些多个jar中创建了一个新的jar,这个全新的jar被称为依赖项。

现在我切换到maven,我想知道我如何才能maven这个。换句话说,如何告诉maven将多个jar构建到一个jar中,然后将其作为依赖项引用?为了使内容更扎实,我将分享我的文件夹结构:

+- mainProject
+- pom.xml    
+- someGroup
|  +- pom.xml   <- refer here
|  +- sampleModule1
|  | +- pom.xml  <- build here
|  | +- build.xml 
|  | +- first.jar
|  | +- second.jar

我的一个想法是告诉maven调用build.xml,它将从这两个jar中创建新的jar,然后将其用作依赖项,如:

<dependency>
         <groupId>someGroup</groupId>
         <artifactId>org.boofcv</artifactId>
         <version>1.0.0</version>
         <scope>system</scope>
         <systemPath>${project.basedir}/../shared/org.boofcv/brand-new.jar</systemPath>
   </dependency>

然而,我怀疑它会起作用,因为可能会出现先有鸡还是先有蛋的问题。当我调用maven install时,创建新.jar的任务可能发生在maven将其作为依赖项查找之后,从而导致错误。

有人知道解决这个问题的方法吗?

在进一步搜索之后,我了解到不可能调用Ant脚本将这些jar构建到一个jar中,同时告诉Maven使用最终的jar。请看下面的引用:

"当使用Maven Antrun Plugin时,Maven试图解决依赖关系来为Antrun调用构建类路径,因此您面临一个鸡和蛋的问题:您不能声明在Antrun执行期间创建的依赖关系,该依赖关系需要运行。这行不通。"

相反,我发现了一个名为maven-shade-plugin的插件。它从小的jar中创建一个大的jar,我可以在以后的顶级pom.xml中使用它作为依赖项,这是我所要求的。

相关内容

  • 没有找到相关文章

最新更新