我对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文件是没有复制,也没有错误......
有什么想法吗?
答案 0 :(得分:1)
好的,钉了它,我有点可耻我以前没试过......
简短版本:import
在netbeans'import
之前你的东西。
当导入东西时,第一个定义会“锁定”未来的定义,因此在之前的import
中定义的任何东西都无法在以后的import
中覆盖定义......
Netbeans在target
中自动生成所有可能的nbproject/build-impl.xml
部分,甚至是空部分,因此必须事先导入您需要定义的所有部分(而在build.xml
的根处添加目标部分导入build-impl.xml
后可以毫无问题地完成......)。