我们在Eclipse中得到了一个GWT项目,否则它就会工作。 现在我想要一个在服务器上运行的脚本,它从源代码管理中获取最新版本,并将其编译到服务器上并进行部署。 这将为我们节省大量的人工工作,并允许我们在有限带宽的连接上部署新版本(因为我们不必将应用程序上传到服务器)。从命令行编译一个Eclipse eclipse GWT项目,没有eclipse:编译错误
拉动了最新版本的源代码后,该脚本尝试使用下面的命令来编译代码:
java -cp "/path/eclipse/plugins/com.google.gwt.eclipse.sdkbundle_2.5.0.v201211121240-rel-r42/gwt-2.5.0/*:/path/company/projects/pull-compile-deploy/X/X/src:/path/company/projects/pull-compile-deploy/X/X/war/WEB-INF/lib/*" com.google.gwt.dev.Compiler nl.company.projects.X
Compiling module nl.company.projects.X
Finding entry point classes
[ERROR] Unable to find type 'nl.company.projects.X.client.XMain'
[ERROR] Hint: Previous compiler errors may have made this type unavailable
[ERROR] Hint: Check the inheritance chain from your module; it may not be inheriting a required module or a module may not be adding its source path entries properly
所有的源代码是/path/company/projects/pull-compile-deploy/X/X/src
,所有使用.jar文件(除了GWT的东西)在/path/company/projects/pull-compile-deploy/X/X/war/WEB-INF/lib/
。显然有些问题。
问题:文件/path/company/projects/pull-compile-deploy/X/X/src/nl/company/projects/X/client/XMain.java
确实存在,应该在类路径?! 任何人任何想法在这里可能会出现什么问题? 是否有可能在某些日志中看到eclipse执行编译的命令?我查看了eclipse可以导出的build.xml,但似乎没有包含编译生产的目标。
别的东西:apperantly GWT预计X.gwt.xml
是在/path/company/projects/pull-compile-deploy/X/X/src/nl/company/project/X.gwt.xml
,而蚀把它放在/path/company/projects/pull-compile-deploy/X/X/src/nl/company/project/X/X.gwt.xml
(即嵌套一个目录深),我解决了这个问题通过创建符号链接。
进一步编辑: 由于一个答案集中在我如何调用编译工具,我已经重写了在Ant中,见下文。 问题依然存在。
<!-- Compile the source using javac. -->
<target name="compile" depends="init">
<javac srcdir="src/" destdir="bin/">
<classpath refid="project.classpath"/>
</javac>
</target>
<!-- Use the GWT-compiler. -->
<target name="gwt-compile" depends="compile">
<java failonerror="true" fork="true" classname="com.google.gwt.dev.Compiler">
<classpath>
<path refid="project.classpath"/>
<pathelement location="src/"/>
<pathelement location="bin/"/>
</classpath>
<jvmarg value="-Xmx512M"/>
<arg value="${module.name}"/>
</java>
</target>
上面的Ant脚本有什么问题吗? module.name = nl.company.projects.X
和refid="project.classpath"
的路径包含所有使用的库以及GWT库(gwt-user.jar,gwt-dev.jar和validation-api-1.0.0.GA(-source).jar)。
XMain类不会继承任何东西(除了Object),并且只实现EntryPoint(它包含在gwt-user.jar中)。所以我不认为这个问题与编译器给出的第二个提示有关。
任何想法?
谢谢,我不知道我必须先使用常规编译器进行编译。但是,这似乎并没有解决我的问题。 – user1302914
查看编辑的回复。 –
符号链接是问题。真的想要对我的大脑进行一些版本控制,因为我不知道为什么我认为这是必需的/一个好主意。谢谢! – user1302914