maven:调用ant执行build.xml的两种方式
来源:互联网 发布:php极光推送原理 编辑:程序博客网 时间:2024/05/01 09:53
sql2java是通过ant脚本组织项目来实现java代码生成的,所以要使用sql2java就必须使用ant来执行build.xml脚本。如果自己项目是用maven来组织管理的,那么要使用sql2java来生成代码就涉及到maven执行ant脚本的问题。
maven提供了执行ant脚本的功能,这里就用到了maven插件maven-antrun-plugin。
sql2java/pom.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>sql2java</groupId> <artifactId>sql2java-generator</artifactId> <packaging>pom</packaging> <version>1.0-SNAPSHOT</version> <name>sql2java-generator</name> <!-- 调用 ant 执行 build.xml 完成jav代码生成 --> <properties> <!-- sql2java参数定义,参见build.xml 调用方式 mvn generate-sources \ -Dsql2java-config=../sql2java.properties \ -Dgenerated-src=../src/main/java \ -Ddriver-jar=../lib/mysql-connector-java-5.1.43-bin.jar --> <sql2java-config>../sql2java.properties</sql2java-config> <generated-src>../src/main/java</generated-src> <!--<driver-jar>../lib/mysql-connector-java-5.1.43-bin.jar</driver-jar>--> </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.8</version> <executions> <execution> <id>ant-build</id> <!--绑定插件到代码生成阶段执行--> <phase>generate-sources</phase> <goals> <goal>run</goal> </goals> <configuration> <target> <!-- 执行builx.xml脚本, 并向build.xml传递三个参数 sql2java-config,generated-src,driver-jar --> <ant antfile="build.xml" target="rebuild" inheritAll="false"> <property name="sql2java-config" value="${sql2java-config}"/> <property name="generated-src" value="${generated-src}"/> <property name="driver-jar" value="${driver-jar}"/> </ant> </target> </configuration> </execution> </executions> </plugin> </plugins> </build></project>
指定生命周期阶段(phase)
上面的脚本中将antrun插件绑定在generate-sources 生命周期(phase),并给antrun指定了要执行的具体任务(<target></target>
定义),那么maven执行时,只要指定生命周期(phase)为generate-sources,就可以执行buid.xml脚本了,如下:
mvn generate-sources \ -Dsql2java-config=../sql2java.properties \ -Dgenerated-src=../src/main/java \ -Ddriver-jar=../lib/mysql-connector-java-5.1.43-bin.jar
指定插件目标(goal)
sql2java/pom.xml中antrun插件也可以如下定义,即不将它绑定到任何生命周期(phase),而是通过在命令行指定执行插件目标(goal)的方式来执行build.xml脚本:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-antrun-plugin</artifactId> <version>1.8</version> <configuration> <target> <!-- 执行builx.xml脚本, 并向build.xml传递三个参数 sql2java-config,generated-src,driver-jar --> <ant antfile="build.xml" target="rebuild" inheritAll="false"> <property name="sql2java-config" value="${sql2java-config}"/> <property name="generated-src" value="${generated-src}"/> <property name="driver-jar" value="${driver-jar}"/> </ant> </target> </configuration></plugin>
上面的代码与本文最开始的sql2java/pom.xml
中<plugin></plugin>
定义相比,就是少了<execution><executions></execution></executions>
两层,只将configuration
元素提到最上层。
这样以来,意思就变了,maven调用的方式也要做相应的修改,就要在命令行指定插件目标(goal),而不是生命周期阶段(phase)
mvn antrun:run \ -Dsql2java-config=../sql2java.properties \ -Dgenerated-src=../src/main/java \ -Ddriver-jar=../lib/mysql-connector-java-5.1.43-bin.jar
参考资料
build.xml完整代码参见:https://github.com/10km/sql2java-2-6-7/blob/custom/build.xml
pom.xml完整代码参见 :https://github.com/10km/sql2java-2-6-7/blob/custom/pom.xml
《maven-antrun-plugin》
- maven:调用ant执行build.xml的两种方式
- JAVA 调用ant执行build.xml
- Ant的build.xml
- Ant命令执行build.xml时的参数传递
- C#调用PowShell执行命令的两种方式
- ant 的build.xml学习
- Ant的build.xml解释
- ant中调用外部ant任务的两种方法
- ant中调用外部ant任务的两种方法
- 实习杂记(23):build.xml进行ant编译的时候target的执行顺序
- ant 的build.xml的例子
- 一个简单的ANT的BUILD.XML
- Ant的build.xml的编写学习
- 项目中,使用ant,最基本的build.xml文件的书写方式
- java 调用ant的自定义task,默认不是build.xml 的一点问题
- ANT编译文件build.xml的书写
- 常用的Ant模板(BUILD.XML)
- 常用的Ant模板(BUILD.XML)
- 做好企业流程管理的六个建议
- Maven项目中War包的打包及依赖方式
- 01背包问题
- class _declspec(dllexport) class_name与class _declspec(dllimport) class_name的配套使用
- 小用法,使用awk来对文件随机抽取n行
- maven:调用ant执行build.xml的两种方式
- 轻松学JVM(一)——基本原理
- 模拟库函数strchr和strrstr
- LED恒流驱动IC
- dataframe 操作excel
- 标准C++中的string类的用法总结[转载]
- SpringMVC体系结构和处理请求控制器
- java阶段性总结
- 集合---ArrayList,LinkedList,Vector