1

我对netbeans及其构建定义还很陌生,所以我想要实现的目标可能是不可能的......

我正在使用 netbeans 开发几个插件,我希望在生成 bee 后将所有 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文件,也没有错误......

有任何想法吗 ?

4

1 回答 1

1

好吧,搞定了,我有点羞耻我之前没有尝试过......

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

导入事物时,第一个定义会“锁定”未来的定义,因此先前定义的任何内容都import无法在以后覆盖定义import...

Netbeans 自动生成所有可能的target部分nbproject/build-impl.xml,甚至是空部分,因此您需要定义的所有内容都必须预先导入(而build.xml在导入后可以在根目录添加目标部分build-impl.xml没有问题......)。

于 2012-08-28T11:51:33.330 回答