首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从Netbeans项目的jar中排除源包

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

Stack Overflow用户
提问于 2014-11-16 02:47:53
回答 3查看 3.2K关注 0票数 2

我有一个Netbeans项目,让Netbeans处理打包;它使用Netbean的build-impl.xml Ant脚本对其进行打包。有些包我不希望在Netbeans创建的最终jar中结束。有没有办法将这些包排除在最终的jar中?

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

代码语言:javascript
运行
复制
<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文件,而是通过修改build.xml文件来实现这一点,Netbeans留出了这个文件供我们修改……因此,如果解决方案只涉及该文件,则会加分。

谢谢

EN

回答 3

Stack Overflow用户

发布于 2015-01-13 23:25:41

我找到了两种方法(每种方法都有各自的缺点),这两种方法都是在属性窗口的源代码部分。

1)将不需要的包移动到某个测试包文件夹中。在属性->源中,您可以添加或编辑测试包文件夹。这里的缺点是,您只能将该包用作测试。这对我来说工作得很好,因为我唯一必须使用该代码的时候是在我的IDE上。如果我需要将这个包添加到jar中,这可能会成为一个问题。

2)在右下角的Properties -> Sources中,有一个标记为Includes/Excludes的按钮,您可以使用该按钮为最终jar添加要排除的文件或包。这里的缺点是,如果代码依赖于其他包,则代码完全不可用。Netbeans基本上排斥了它。这对我不起作用。

理想的解决方案应该是设计哪些包进入最终的jar,然后使用各种配置文件来构建这些jar。这就是说,我可以构建Jar-A或Jar-B,每个包都有自己的包。我将等待该解决方案,然后将此问题标记为已回答。

票数 3
EN

Stack Overflow用户

发布于 2020-04-16 14:17:29

你不需要将你的包移动到任何地方。您仍然可以排除所有不想包含在最终JAR中的*.class文件。

打开nbproject/project.properties文件并找到dist.archive.excludes,然后将所有*.class文件名(要排除)作为逗号分隔值提供给该键dist.archive.excludes

示例:

代码语言:javascript
运行
复制
dist.archive.excludes=`**/X*.class,**/Y*.class,**/FullClassName.class`

**/X*.class**/Y*.class、X和Y是类的前缀,您可以给出完整的类名,如下所示

语法为**/X*.class,其中X是类名的前缀。

票数 0
EN

Stack Overflow用户

发布于 2020-04-16 14:23:46

2)您可以直接定义所有必须排除的*.class文件,而不是从最终的jar中定义整个包。转到build-imple.xml文件中的标记

<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文件。现在找到属性excludes="${dist.archive.excludes}“并进行编辑。示例: excludes="**/X*.class**/Y*.class**/FullClassName.class

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26949419

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档