【问题标题】:How to include default package in Ant javac Task如何在 Ant javac 任务中包含默认包
【发布时间】:2009-07-08 11:00:57
【问题描述】:

当我:

<javac srcdir="${src}" destdir="${build.classes.dir}" classpathref="classpath">
    <include name="ObjectInDefaultPackage"/>
    <include name="com/mypackage/**"/>
</javac>

它将不再添加编译并添加默认包中的 ObjectInDefaultPackage 类(即它没有打包,它位于 man ${src} 目录中)。如果我删除包含它会很好地添加它,但是一旦我设置了至少一个包含/排除,我就再也找不到添加它的方法了。

如果我这样做:

<javac srcdir="${src}" destdir="${build.classes.dir}" classpathref="classpath">
</javac>

然后它编译 ObjectInDefaultPackage...

【问题讨论】:

    标签: java ant javac


    【解决方案1】:

    使用这个:

    <include name="ObjectInDefaultPackage*"/>
    <include name="com/mypackage/**"/>
    

    没有斜线,Ant 将在目标目录中搜索,即src。或使用*.java

    但不建议在默认包中包含类。

    【讨论】:

    • 这也可以,但是可能有多个 Object 以您不想包含的相同字符串开头。顺便说一句,默认包的原因与应用程序在 Mac OS 主菜单中的命名方式有关。长话短说,您可以执行 System.setProperty(...) 但它很麻烦并且有一些其他规则(例如,当调用 L&F 时等)。为了避免这一切,如果你什么都不做,它会在菜单中获取包名和类作为默认应用程序名;)
    【解决方案2】:

    我刚刚发现了这个问题。愚蠢的错误。当您习惯于长时间处理通配符时,就会发生这种情况。

    答案是:

    <javac srcdir="${src}" destdir="${build.classes.dir}" classpathref="classpath">
        <include name="ObjectInDefaultPackage.java"/>
        <include name="com/mypackage/**"/>
    </javac>
    

    注意 ObjectInDefaultPackage 已更改为 ObjectInDefaultPackage**.java**

    【讨论】:

      猜你喜欢
      • 2012-06-02
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      • 2014-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-01
      相关资源
      最近更新 更多