Ant编译创建不需要的java类文件
我的标准ant构建不小心编译了一个文件名错误的子类。下面是示例类Ant编译创建不需要的java类文件,java,class,ant,build,Java,Class,Ant,Build,我的标准ant构建不小心编译了一个文件名错误的子类。下面是示例类 public final class AdminResources { public static final class APPLICATION { public static final class MESSAGEBLOCK { public static final String LEDGER = "application.admin
public final class AdminResources
{
public static final class APPLICATION
{
public static final class MESSAGEBLOCK
{
public static final String LEDGER = "application.admin.app.messageblock.ledger";
}
}
}
build.xml文件中的部分示例
<target name="Compile_Sources" depends="Init_Dir" description="Compile Sources">
<javac
debug="true"
srcdir="${source.dir}"
destdir="${build.dir}"
classpathref="classpath">
</javac>
</target>
构建过程运行顺利,没有出现错误,但根据上面的类示例生成了额外的不需要的文件,如下所示
- AdminResources.class(这没问题)
- AdminResources$APPLICATION.class
- AdminResources$APPLICATION$MESSAGEBLOCK.class
- Ant版本:1.9.0
- Java:1.7.0-u21
AdminResources
的内部类编译而来的类文件。即使手动编译程序,最终每个类也会有一个文件,包括程序可能具有的匿名类:
Class name File name
--------------------------------------- ---------------------------------------------
AdminResources AdminResources.class
AdminResources.APPLICATION AdminResources$APPLICATION.class
AdminResources.APPLICATION.MESSAGEBLOCK AdminResources$APPLICATION$MESSAGEBLOCK.class
这与ANT编译无关:这两个文件是从
AdminResources
的内部类编译而来的类文件。即使手动编译程序,最终每个类也会有一个文件,包括程序可能具有的匿名类:
Class name File name
--------------------------------------- ---------------------------------------------
AdminResources AdminResources.class
AdminResources.APPLICATION AdminResources$APPLICATION.class
AdminResources.APPLICATION.MESSAGEBLOCK AdminResources$APPLICATION$MESSAGEBLOCK.class
这正是java编译器从一个.java文件创建多个.class文件的方式。对于匿名类,还有类似于
AdminResources$1.class
的内容。没关系。哪种方式不受欢迎?!这些是您声明的类。抱歉,这是因为我对大规模java开发缺乏了解。这正是java编译器从一个.java文件和几个.class文件创建的方式。对于匿名类,还有类似于AdminResources$1.class
的内容。没关系。哪种方式不受欢迎?!这些是您声明的类。对不起,这是因为我对大规模java开发缺乏理解。