在Maven实际使用过程中,有时候在对一些旧有的项目的做从Makefile和ant到Maven迁移时需要对一些步骤做特殊处理,比如说编译JNI代码,虽然Maven有个native插件可以用,但需要将原有项目JNI的编译步骤重写,这在有些时候显然不太适合,比如时间压力比较大的情况下。其实这种情况可以使用Maven的antrun插件来做,这样做的好处就是可以重用原来写好的Makefile,相对来说还是比较简单也是最快的。具体信息可以参考http://maven.apache.org/plugins/maven-antrun-plugin/。
Maven的antrun用起来也是非常简单的,就是在代码里嵌入类似以下代码片段:
- <build>
<plugins> - <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<configuration>
<target>
<property name="compile_classpath" refid="maven.compile.classpath"/>
<property name="runtime_classpath" refid="maven.runtime.classpath"/>
<property name="test_classpath" refid="maven.test.classpath"/>
<property name="plugin_classpath" refid="maven.plugin.classpath"/> - <ant antfile="${basedir}/build.xml">
<target name="release"/>
</ant>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<?xml version="1.0" encoding="UTF-8"?>
<project name="jsdx-dmtp-build" default="release" basedir=".">
<!-- 环境属性文件 -->
<property file="build.properties" />
<target name="release" >
<echo message="-----------构建项目-------------" />
<delete dir="${project.webapp}"/>
<mkdir dir="${project.webapp}"/>
<copy todir="${project.webapp}">
<fileset dir="${maven.webapp}">
<include name="**/*" />
</fileset>
</copy>
<copy todir="${project.webapp}/WEB-INF/classes">
<fileset dir="${basedir}/../maven-m1/target/classes">
<include name="**/*" />
</fileset>
</copy>
</target>
</project>
在构建时,会出现以下错误,was cached in the local repository, resolution will not be reattempted until
该错误是由于插件没有下载成功的原因。
解决方法:删除本地仓库相关插件。
相关推荐
标题中的“用谷歌的closure-compiler + maven-antrun-plugin”表明了本文将探讨如何结合Google的Closure Compiler工具和Maven的Antrun插件来优化JavaScrip项目。Closure Compiler是一款强大的JavaScript代码压缩器,...
有些人第二次考虑,来到Maven-AntRun-Plugin并使用一些ant任务。 但是,为什么不存在一个可以简单地打印出某种消息的简单小插件。 正是在这种情况下,才打算使用Echo Maven插件。执照问题追踪器用法第一种也是最...
为此,Maven 提供了 `maven-antrun-plugin`,它允许在 Maven 构建流程中运行 Ant 任务。在 `pom.xml` 中定义 Ant 任务,可以充分利用两者的优点。 在实际开发中,我们需要根据项目需求选择和配置合适的 Maven 插件...
maven-antrun-plugin 能让用户在 Maven 项目中运行 Ant 任务。用户可以直接在该插件的配置以 Ant 的方式编写 Target,然后交给该插件的 run 目标去执行。在一些由 Ant 往 Maven 迁移的项目中,该插件尤其有用。此外...
对于Zookeeper,可能还需要使用`maven-antrun-plugin`执行Ant任务,如创建配置文件或启动脚本。对于Kafka,`maven-shade-plugin`可以用来重打包JAR,解决类冲突问题。 ** 压缩包内的文件分析 ** 虽然提供的压缩包...
3. **maven-antrun-plugin-1.8.jar**:Ant运行插件,允许在Maven生命周期中执行Ant任务,扩展了Maven的功能,使得可以执行一些Maven自身不支持的任务。 4. **maven-jar-plugin-2.4.jar**:用于创建和管理JAR文件,...
在示例中,`maven-antrun-plugin` 被用于运行 Ant 任务。 - `<artifactId>` 指定插件的唯一标识。 - `<executions>` 定义了插件的不同执行实例,每个实例都有自己的 ID、目标、阶段和配置。 2. **Execution (执行...
- **maven-antrun-plugin**:用于执行Ant任务。 - **maven-archetype-plugin**:用于创建新项目骨架。 - **maven-assembly-plugin**:用于创建自包含的分发包。 - **maven-dependency-plugin**:用于管理依赖...
当决定将该代码转换为 Maven 时,通常我们首先获取 Ant 代码片段并使用 antrun 插件在内部使用它。 这使得 Maven pom 文件冗长且难以维护。 将 Ant 代码重新实现为 Maven 插件可能是一项乏味的工作。 基于 Ant 的 ...
最后,Maven的生命周期插件如`maven-antrun-plugin`可以用于在特定阶段执行任务,例如在`pre-clean`阶段检查并删除目标目录中的文件。这通过配置插件的`executions`和`goals`实现,并可以结合Ant任务如`if`和`else`...
5. **使用maven-antrun-plugin**:Maven的AntRun插件允许你在构建过程中执行Ant任务,这样可以根据环境执行不同的脚本或操作。 以上都是Maven在处理多环境部署时常用的方法。通过灵活运用这些策略,开发者可以轻松...
例如,`maven-antrun-plugin`允许在Maven项目中使用Ant任务,`ant-contrib`提供了更多的控制结构,如循环和决策。 8. **构建生命周期**:虽然Ant没有预定义的构建生命周期像Maven那样,但用户可以自由定义目标之间...
例如,项目可能需要使用maven-antrun-plugin插件来执行ant任务,或者使用maven-compiler-plugin插件来编译Java代码。 报告设置 pom.xml文件还定义了项目的报告设置,reporting元素用于描述项目的报告信息。例如,...