问题很奇怪,估计没啥雷同的了。
简单来说,要求必须用ant打包maven项目。
最终只需一个war包,其他项目打成jar包,放在war包中。
在每个maven子项目中,建立一个用于ant buildfile的xml。
1 | <!-- 源文件目录 --> |
打war包xml可运行其他jar包xml,然后打war包。
互相依赖的关系,没有解决。如,A依赖B,B依赖A
作弊的方法是,已有A/Bjar包。
唉,这方法其实没啥记录的必要。熟悉下ant和maven好了。
<project name="项目名" basedir="." default="main">
<!-- 源文件目录 -->
<property name="src.dir" value="src/main/java" />
<!-- 编译jar文件目录 -->
<property name="jar.dir" value="../compile_lib" />
<!-- WEB文件目录 -->
<property name="web.dir" value="src/main/webapp" />
<!-- config || output address -->
<property name="config.dev.dir" value="../config/dev" />
<property name="config.dir" value="src/main/resource" />
<!-- jar文件存放目录 -->
<property name="dist.dir" value="../dist" />
<property name="dist.dev.dir" value="../dist/dev" />
<!-- 编译文件存放目录 -->
<property name="build.dir" value="build" />
<!-- 生成应用名 -->
<property name="webapp.name" value="项目名" />
<property environment="env" />
<path id="classpath">
<fileset dir="${jar.dir}">
<include name="*.jar" />
</fileset>
<pathelement path="${build.dir}" />
</path>
<!-- 构建子工程XXXX任务 -->
<target name="子工程">
<echo message="构建子工程「XXXX」!"/>
<ant dir="../XXXX"/>
</target>
<!-- 生成war包 命令: ant -buildfile build.xml -->
<target name="RUN_PACKAGE" depends="子工程,子工程2" description="Packages app as WAR">
<echo message="正在清空编译目录,生成目录..."/>
<delete dir="${build.dir}/classes"/>
<delete dir="${build.dir}/lib"/>
<delete file="${dist.dir}/${webapp.name}.war"/>
<echo message="正在创建编译目录...."/>
<mkdir dir="${build.dir}/classes" />
<javac destdir="${build.dir}/classes" debug="false" deprecation="false" optimize="true" failonerror="true">
<compilerarg line="-encoding UTF-8"/>
<src path="${src.dir}"/>
<classpath refid="classpath" />
</javac>
<echo message="正在编译文件目录...."/>
<!-- Copy config files to ${build.dir}/classes -->
<copy todir="${build.dir}/classes">
<fileset dir="${config.dir}" includes="**/*.*" />
</copy>
<copy todir="${build.dir}/classes">
<fileset dir="${src.dir}" includes="**/*.*" excludes="**/*.java" />
</copy>
<copy todir="${build.dir}/lib">
<fileset dir="${jar.dir}" includes="**/*.*" />
</copy>
<echo message="正在生成WAR包..."/>
<war destfile="${dist.dir}/${webapp.name}.war" webxml="${web.dir}/WEB-INF/web.xml">
<classes dir="${build.dir}/classes" />
<lib dir="${build.dir}/lib" />
<fileset dir="${web.dir}">
<include name="**/*.*" />
<exclude name="**/classes/**/*.*"/>
<exclude name="**/web.xml" />
</fileset>
</war>
<echo message="清理相关编译文件..."/>
<delete dir="${build.dir}/classes"/>
<delete dir="${build.dir}/lib"/>
</target>
<target name="DEV" depends="子工程,子工程2" description="Packages app as WAR DEV">
<echo message="正在清空编译目录,生成目录..."/>
<delete dir="${build.dir}/classes"/>
<delete dir="${build.dir}/lib"/>
<delete file="${dist.dev.dir}/${webapp.name}.war"/>
<echo message="正在创建编译目录...."/>
<mkdir dir="${build.dir}/classes" />
<javac destdir="${build.dir}/classes" debug="false" deprecation="false" optimize="true" failonerror="true">
<compilerarg line="-encoding UTF-8"/>
<src path="${src.dir}"/>
<classpath refid="classpath" />
</javac>
<echo message="正在编译文件目录...."/>
<!-- Copy config files to ${build.dir}/classes -->
<copy todir="${build.dir}/classes">
<fileset dir="${config.dev.dir}" includes="**/*.*"/>
</copy>
<copy todir="${build.dir}/classes">
<fileset dir="${config.dir}" includes="**/*.*" />
</copy>
<copy todir="${build.dir}/classes">
<fileset dir="${src.dir}" includes="**/*.*" excludes="**/*.java" />
</copy>
<copy todir="${build.dir}/lib">
<fileset dir="${jar.dir}" includes="**/*.*" />
</copy>
<echo message="正在生成WAR包..."/>
<war destfile="${dist.dev.dir}/${webapp.name}.war" webxml="${web.dir}/WEB-INF/web.xml">
<classes dir="${build.dir}/classes" />
<lib dir="${build.dir}/lib" />
<fileset dir="${web.dir}">
<include name="**/*.*" />
<exclude name="**/classes/**/*.*"/>
<exclude name="**/web.xml" />
</fileset>
</war>
<echo message="清理相关编译文件..."/>
<delete dir="${build.dir}/classes"/>
<delete dir="${build.dir}/lib"/>
</target>
<!-- 默认任务 -->
<target name="main" depends="RUN_PACKAGE"/>
</project>