在导入的构建脚本中,目标-post-jar未执行

时间:2012-08-28 11:09:28

标签: xml netbeans import target build.xml

我对netbeans及其构建定义相当新,所以我试图实现的可能是不可能的......

我正在使用netbeans开发几个插件,我希望在生成之后将所有jar文件复制到一个公共目录中。

我可以在每个<target name="-post-jar">文件中使用build.xml块来执行此操作,但由于将来会有更常见的事情要做,我希望将复制说明放在一个公共文件中包含在每个插件的每个build.xml文件中。

这是我做的:

我在包含此内容的所有项目所在的目录(movejar.xml)中创建了一个/home/xxx/dev/plugins文件:

<?xml version="1.0" encoding="UTF-8"?>
<project name="movejar" default="default" basedir=".">
    <target name="-post-jar">
        <property name="mcp.destpath" value="/home/xxx/dev/plugins" />
        <echo message="Moving ${dist.jar} to ${mcp.destpath}" />
        <copy file="${dist.jar}" flatten="true" todir="${mcp.destpath}" />
    </target>
</project>

然后我向import添加了/home/xxx/dev/plugins/myplugin/build.xml指令:

<?xml version="1.0" encoding="UTF-8"?>
<project name="myplugin" default="default" basedir=".">
    <description>Builds, tests, and runs the project myplugin.</description>
    <import file="nbproject/build-impl.xml"/>
    <import file="../movejar.xml"/>
</project>

导入很好,因为当我在<echo>foo</echo> movejar.xml部分之外放置target时,它会显示在编译日志中。

问题是-post-jar目标在编译时没有执行(当然在项目属性中启用了jar生成),echo不会出现在编译日志中,而jar文件是没有复制,也没有错误......

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

好的,钉了它,我有点可耻我以前没试过......

简短版本:import在netbeans'import之前你的东西。

当导入东西时,第一个定义会“锁定”未来的定义,因此在之前的import中定义的任何东西都无法在以后的import中覆盖定义......

Netbeans在target中自动生成所有可能的nbproject/build-impl.xml部分,甚至是空部分,因此必须事先导入您需要定义的所有部分(而在build.xml的根处添加目标部分导入build-impl.xml后可以毫无问题地完成......)。