我目前有一个Maven构建,它可以调用一个ant任务来运行。此ant任务依赖于某些外部库。这些库目前在我的系统中是硬编码的。我想将这些外部库移动到本地Maven仓库并让maven从回购中检索它们,但我不知道该怎么做。
我当前的任务定义为(为简洁而编辑完整的任务定义):
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<!-- Ant Custom Folder copying plugin -->
<execution>
<id>rename_files</id>
<phase>process-resources</phase>
<configuration>
<tasks>
<taskdef resource="net/sf/antcontrib/antlib.xml" classpath="${env.ANT_HOME}/lib/ant-contrib-1.0b3.jar" />
<taskdef name="stringutil" classname="ise.antelope.tasks.StringUtilTask" classpath="${env.ANT_HOME}/lib/AntelopeTasks_3.4.1.jar" />
<typedef name="trim" classname="ise.antelope.tasks.typedefs.string.Trim" classpath="${env.ANT_HOME}/lib/AntelopeTasks_3.4.1.jar" />
<typedef name="lastindexof" classname="ise.antelope.tasks.typedefs.string.LastIndexOf" classpath="${env.ANT_HOME}/lib/AntelopeTasks_3.4.1.jar" />
<typedef name="substring" classname="ise.antelope.tasks.typedefs.string.Substring" classpath="${env.ANT_HOME}/lib/AntelopeTasks_3.4.1.jar" />
<typedef name="listfiles" classname="ise.antelope.tasks.typedefs.file.FileList" classpath="${env.ANT_HOME}/lib/AntelopeTasks_3.4.1.jar" />
<taskdef name="fileutil" classname="ise.antelope.tasks.FileUtilTask" classpath="${env.ANT_HOME}/lib/AntelopeTasks_3.4.1.jar" />
<!-- CSS -->
<for param="file">
<path>
<fileset dir="target\Com-${project.version}\style\" includes="*.css" />
</path>
<sequential>
<fileutil file="@{file}" property="fileWithoutPath">
<listfiles includepath="false" />
</fileutil>
</sequential>
</for>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
我知道我可以将<dependencies>
定义为我的插件def的一部分,但不确定如何重新定义我的taskdef
以指向依赖项与rar jar文件。
答案 0 :(得分:2)
经过大量筛选后,我发现我可以做到以下几点。
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<dependencies>
<dependency>
<groupId>ant-contrib</groupId>
<artifactId>ant-contrib</artifactId>
<version>1.0b3</version>
</dependency>
<dependency>
<groupId>org.tigris.antelope</groupId>
<artifactId>antelopetasks</artifactId>
<version>3.4.1</version>
</dependency>
</dependencies>
<executions>
<!-- Ant Custom Folder copying plugin -->
<execution>
<id>rename_files</id>
<phase>process-resources</phase>
<configuration>
<tasks>
<taskdef resource="net/sf/antcontrib/antlib.xml" classpathref="maven.plugin.classpath" />
<taskdef name="stringutil" classname="ise.antelope.tasks.StringUtilTask" classpathref="maven.plugin.classpath" />
<typedef name="trim" classname="ise.antelope.tasks.typedefs.string.Trim" classpathref="maven.plugin.classpath" />
<typedef name="lastindexof" classname="ise.antelope.tasks.typedefs.string.LastIndexOf" classpathref="maven.plugin.classpath" />
<typedef name="substring" classname="ise.antelope.tasks.typedefs.string.Substring" classpathref="maven.plugin.classpath" />
<typedef name="listfiles" classname="ise.antelope.tasks.typedefs.file.FileList" classpathref="maven.plugin.classpath" />
<taskdef name="fileutil" classname="ise.antelope.tasks.FileUtilTask" classpathref="maven.plugin.classpath" />
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
只需使用classpathref
并在任务定义中指向maven.plugin.classpath
。
希望将来可以帮助其他人。