如何从Netbeans项目的jar中排除源软件包

问题描述 投票:2回答:2

我有一个Netbeans项目,让Netbeans处理包装;它使用Netbean的build-impl.xml Ant脚本对其进行打包。我不想某些软件包最终出现在Netbeans创建的最终jar中。有没有办法将那些软件包排除在最终的jar中?

在build-impl.xml文件中,我认为这是调用或至少定义了Jar命令的地方。

<target name="-init-presetdef-jar">
    <presetdef name="jar" uri="http://www.netbeans.org/ns/j2se-project/1">
        <jar compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}">
            <j2seproject1:fileset dir="${build.classes.dir}" excludes="${dist.archive.excludes},**/editor/**"/>
        </jar>
    </presetdef>
</target>

我要排除的软件包之一称为“编辑器”。我在上面的副本中添加了它,以尝试将其排除在外,但那没有用,“编辑器”包及其所有类仍显示在最终的jar中。

任何想法,我如何将其从罐子中排除?我宁愿不触摸build-impl.xml文件,而是通过弄乱Netbeans留给我们弄乱的build.xml文件来完成此工作……因此,如果解决方案仅涉及该文件,则可以加分。

谢谢

java netbeans ant jar
2个回答
3
投票

确定,我发现了两种方法(每种方法都有其自身的缺点),都在“属性”窗口的“源”部分中找到。

1)将不需要的软件包移动到测试软件包文件夹之一。在“属性”->“源”中,您可以添加或编辑测试包文件夹。此处的缺点是只能将软件包用作测试。这对我来说很好用,因为我唯一需要使用该代码的时间是在IDE上时。如果我需要将此程序包添加到jar中,可能会成为问题。

2)在属性-> Sources的右下角,有一个标记为Includes / Excludes的按钮,可用于添加文件或程序包以排除最终jar。此处的缺点是,如果代码依赖于其他软件包,则完全无法使用。 Netbeans本质上排斥了它。这对我不起作用。

一种理想的解决方案是一种设计方法,将哪些包装制成最终的罐子,然后使用各种配置文件来构建这些罐子。也就是说,我可以构建Jar-A或Jar-B,每个都有自己的软件包。在将这个问题标记为已回答之前,我将等待该解决方案。


0
投票

您无需将包裹移动到任何地方。您可以排除所有不想成为最终项目一部分的* .class文件。1)打开您的nbproject / project.properties文件,找到“ dist.archive.excludes”,然后将所有。class文件名(要排除)作为逗号分隔的值提供给该键“ dist.archive.excludes” 。例:dist.archive.excludes = / X。class,/ Y * .class,/ FullClassName.class( / X * .class,** / Y * .class,X和Y是该类的前缀,您可以提供完整的类名,如上所示)

© www.soinside.com 2019 - 2024. All rights reserved.