【发布时间】:2016-01-30 19:26:15
【问题描述】:
我使用以下 ant 脚本构建并部署了一个项目:
<?xm1 vertion="1.0" ?>
<project name="my project" default="build" basedir=".">
<path id="project-classpath">
<fileset dir="lib" includes="*.jar" />
</path>
<target name="build">
<echo>Build</echo>
<antcall target="clean"/>
<antcall target="init"/>
<antcall target="compile"/>
<antcall target="package"/>
<antcall target="deploy"/>
</target>
<target name="clean">
<echo>Clean</echo>
<delete dir="build/classes"/>
<delete dir="dist"/>
</target>
<target name="init" depends="clean">
<echo>Init</echo>
<mkdir dir="build/classes"/>
<mkdir dir="dist"/>
</target>
<target name="compile" depends="init">
<echo>Compile</echo>
<javac srcdir="src/myproject" destdir="build/classes" classpathref="project-classpath"/>
</target>
<target name= "package" depends= "compile">
<echo>Package</echo>
<jar destfile="dist/project.jar" basedir="build/classes">
<manifest>
<attribute name="Main-Class" value="myproject.Main"/>
</manifest>
</jar>
</target>
<target name="deploy" depends="package">
<echo>Deploy</echo>
<echo message="Dir: ${user.home}"/>
<copy todir="${user.home}">
<fileset dir="dist"/>
</copy>
</target>
</project>
当我检查部署 jar 文件的目录时,我找到了文件 project.jar,但是当我使用命令运行它时:
java -jar project.jar
我有以下一些错误:
线程“主”java.lang.NoClassDefFoundError 中的异常: javax/ws/rs/core/MultivaluedMap 在 java.lang.Class.getDeclarativeMethods0(Native Method)...
(如果我使用 IDE 运行,它工作正常。)
在我的 project.jar 中,我有以下树结构:
项目.jar
.....myproject(文件夹)
........Main.class(文件)
.....META-INF(文件夹)
........MANIFEST.MF(文件)
文件 MANIFEST.MF 包含以下内容:
清单版本:1.0
Ant 版本:Apache Ant 1.9.6
创建者:1.7.0_79-b14(甲骨文公司)
主类:myproject.Main
有人知道我做错了什么吗?
【问题讨论】: