本来项目是用Maven管理依赖,用MavenShade打包的(其它打包打包完了无法运行)。领导要求改为Ant打包,本来Mave就是菜鸡,Ant都没用过的我简直啧啧。
找了各种插件,Maven Ant自动生成build,可以直接打包,但是我这边打包完了之后所有依赖都没打包,只打包了源码。gg
然后找到AntTask-官网说已废弃,但是新版本搜不到教程,也没有一个正儿八经的文档,所以还是用的老版的AntTask。跟着教程和手册读取了Maven的pom.xml,将所有依赖的jar包都导进来了,但是,无法运行,和MavenShade打包的文件对比,发现MavenShade打包的文件里,所有的jar都是解压出来的,而AntTask打包出来的依赖都是原封不动的Jar
这里提供一个AntTask打包,将依赖Jar解压进来,而不是复制进来的build.xml,这个xml是Maven Ant自动生成的基础上修改的,删去了路径,测试等和这篇文章主题无关的内容。
目录结构看起来没问题了,但是运行的时候还是会各种报错,解决了再更新。
好的,最后发现就是资源文件没复制进来,用拖进来就行了,那就是没问题。只不过ANT打包之后以前会在Shell输出的日志都没了,搞得我有点不适应
//前几行是引入maven-ant-tasks jar包,并将pom.xml引入,读取其依赖,生成一个fileSet
<path id="maven-ant-tasks.classpath" path="./lib/maven-ant-tasks-2.1.3.jar" />
<typedef resource="org/apache/maven/artifact/ant/antlib.xml" uri="antlib:org.apache.maven.artifact.ant" classpathref="maven-ant-tasks.classpath" />
<artifact:pom id ="mypom" file ="pom.xml" />
<artifact:dependencies filesetId ="mydepsfid" pathId="mydepspid" pomRefId ="mypom" />
<target name="compile" description="Compile the code">
<mkdir dir="${maven.build.outputDir}"/>
<javac destdir="${maven.build.outputDir}"
nowarn="false"
debug="true"
optimize="false"
deprecation="true"
target="1.8"
verbose="false"
fork="false"
source="1.8"
includeantruntime="false">
<src>
<pathelement location="${maven.build.srcDir.0}"/>
</src>
<classpath refid="mydepspid"/>
</javac>
//将Jar包解压--我的maven.build.outputDir目录是target/classes
<unzip dest="${maven.build.outputDir}">
<fileset refid ="mydepsfid" />
</unzip>
</target>
<target name="package" depends="compile" description="Package the application">
<jar jarfile="${maven.build.dir}/${maven.build.finalName}.jar"
compress="true"
index="false"
basedir="${maven.build.outputDir}"
excludes="**/package.html">
<manifest>
//指定Main-Class
<attribute name="Main-Class" value="com.trs.xcrawler.server.XcrawlerServer"/>
</manifest>
</jar>
</target>
<target name="jar" depends="package" description="Builds the jar for the application"/>
</project>
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/35458.html