我使用其中一个示例SDK项目创建了一个自定义的Alfresco操作对话框 作为基础。我为我的java文件保留了示例项目“org.alfresco.sample”包 它工作得很好。 然后我尝试将包名更改为“com.xxxxxx.xxxxx”,它停止工作。 我检查了项目中的所有文件,以确保我用我的新包名替换了“org.alfresco.sample”的每个实例。 任何人都可以提出可能的原因吗? 谢谢
我发现当我构建项目时,它不是构建java文件。任何人都可以 建议为什么它没有使用新包名构建java文件? 感谢
我再次获得了java文件。但新行动仍未被使用。新操作使用评估程序,但似乎没有运行。 (它通常会写入 日志。)
以下是build.xml的一部分:
<project name="Custom Dialog Build File" default="package-amp" basedir=".">
<property name="project.dir" value="."/>
<property name="build.dir" value="${project.dir}/build"/>
<property name="config.dir" value="${project.dir}/config"/>
<property name="jsp.dir" value="${project.dir}/web/jsp"/>
<property name="web.dir" value="${project.dir}/web" />
<property name="package.file.jar" value="${build.dir}/lib/custom-dialog.jar"/>
<property name="package.file.zip" value="${build.dir}/lib/custom-dialog.zip"/>
<property name="amp.file" value="${build.dir}/dist/retailChannels.amp"/>
<path id="class.path">
<dirset dir="${build.dir}" />
<fileset dir="../../lib/server" includes="**/*.jar"/>
</path>
<target name="compile">
<mkdir dir="${build.dir}" />
<javac classpathref="class.path" srcdir="${project.dir}/source" destdir="${build.dir}" />
</target>
<target name="package-jar" depends="increment-build-number">
<delete file="${package.file.jar}" />
<jar destfile="${package.file.jar}">
<fileset dir="${build.dir}">
<exclude name="dist/**" />
<exclude name="lib/**" />
<exclude name="web/**" />
</fileset>
</jar>
</target>
<target name="mkdirs">
<mkdir dir="${build.dir}/dist" />
<mkdir dir="${build.dir}/lib" />
</target>
<target name="clean">
<delete includeemptydirs="true">
<fileset dir="${build.dir}/dist" includes="**/*"/>
</delete>
</target>
<target name="package-amp" depends="clean, mkdirs, package-jar" description="Package the Module" >
<delete file="${amp.file}" />
<zip destfile="${amp.file}" >
<fileset dir="${project.dir}/build" includes="lib/*.jar" />
<fileset dir="${project.dir}/config/alfresco/module/alfresco" includes="*.properties" />
<fileset dir="${project.dir}" includes="config/**/*.*" excludes="**/module.properties" />
<fileset dir="${project.dir}/source">
<include name="web/jsp/**/*.jsp" />
<include name="web/images/**" />
</fileset>
</zip>
</target>
</project>
我刚尝试了一下你建议的maven SDK教程,但我得到了 这个错误: 2014年2月14日下午3:42:48 org.apache.catalina.core.ContainerBase startInternal 严重:子容器在启动时失败 java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError:PermGen space at java.util.concurrent.FutureTask.report(FutureTask.java:122) 在java.util.concurrent.FutureTask.get(FutureTask.java:188)
答案 0 :(得分:1)
检查build.xml文件。仔细检查compile和package-jar任务(或类似的)。例如,这些任务中的一个或两个可能具有一个文件集,该文件集使用模式来使用包结构包含您的类,并且现在您已经更改了包名称,它可能不再匹配。
如果没有看到build.xml,很难说清楚。
顺便说一句,如果您想要在Alfresco中创建操作的更新的示例,请查看本教程:http://ecmarchitect.com/alfresco-developer-series-tutorials/actions/tutorial/tutorial.html
它使用Alfresco Maven SDK打包AMP。 Alfresco Maven SDK比您正在使用的旧SDK更受欢迎。