在最终编译时删除调试方法
Remove debug methods on final compile
我经常需要调试信息来进行编程。每次在发布新版本之前,我都必须删除它们,然后在编译所有内容后将它们添加回来。有没有办法在使用 maven 编译时忽略特定的方法调用?
例如,如果代码如下所示:
int i = 10;
@Debug System.out.println(i);
doSomething(i);
当我想编译最终版本时,它会删除带有@Debug 标记的所有内容。
在 Java 生产代码中,最好使用记录器而不是 System.out
这样做的好处是允许您配置所需的日志级别。
即用于本地测试的调试和用于发布的信息(或错误)。
不能在方法体中指定注解
以下是可能的用途:
/** Class, interface (including annotation type), or enum declaration */
TYPE,
/** Field declaration (includes enum constants) */
FIELD,
/** Method declaration */
METHOD,
/** Formal parameter declaration */
PARAMETER,
/** Constructor declaration */
CONSTRUCTOR,
/** Local variable declaration */
LOCAL_VARIABLE,
/** Annotation type declaration */
ANNOTATION_TYPE,
/** Package declaration */
PACKAGE,
/**
* Type parameter declaration
*
* @since 1.8
*/
TYPE_PARAMETER,
/**
* Use of a type
*
* @since 1.8
*/
TYPE_USE
所以不能这样使用注解
此外,Maven 构建执行不应改变您的 类.
的行为
您应该避免在构建的组件中创建变体。这可能会在没有开发环境的情况下带来惊喜。
如果您想在某些特定环境中排除调试信息,请使用日志记录机制(例如 Log4j 或 Logback),而不是使用不用于写入调试信息的标准输出(System.out.println
)。
在开发期间,使用启用属于特定包的 类 调试级别的日志记录配置,在非开发环境中,使用禁用这些相同 类.[= 调试级别的日志记录配置12=]
我经常需要调试信息来进行编程。每次在发布新版本之前,我都必须删除它们,然后在编译所有内容后将它们添加回来。有没有办法在使用 maven 编译时忽略特定的方法调用?
例如,如果代码如下所示:
int i = 10;
@Debug System.out.println(i);
doSomething(i);
当我想编译最终版本时,它会删除带有@Debug 标记的所有内容。
在 Java 生产代码中,最好使用记录器而不是 System.out
这样做的好处是允许您配置所需的日志级别。
即用于本地测试的调试和用于发布的信息(或错误)。
不能在方法体中指定注解
以下是可能的用途:
/** Class, interface (including annotation type), or enum declaration */
TYPE,
/** Field declaration (includes enum constants) */
FIELD,
/** Method declaration */
METHOD,
/** Formal parameter declaration */
PARAMETER,
/** Constructor declaration */
CONSTRUCTOR,
/** Local variable declaration */
LOCAL_VARIABLE,
/** Annotation type declaration */
ANNOTATION_TYPE,
/** Package declaration */
PACKAGE,
/**
* Type parameter declaration
*
* @since 1.8
*/
TYPE_PARAMETER,
/**
* Use of a type
*
* @since 1.8
*/
TYPE_USE
所以不能这样使用注解
此外,Maven 构建执行不应改变您的 类.
的行为
您应该避免在构建的组件中创建变体。这可能会在没有开发环境的情况下带来惊喜。
如果您想在某些特定环境中排除调试信息,请使用日志记录机制(例如 Log4j 或 Logback),而不是使用不用于写入调试信息的标准输出(System.out.println
)。
在开发期间,使用启用属于特定包的 类 调试级别的日志记录配置,在非开发环境中,使用禁用这些相同 类.[= 调试级别的日志记录配置12=]