Maven 使用Plexus Container logging API,就像任何其他 Plexus 组件一样,即LoggerManager / Logger。
从 Maven 3.1.0 开始,Maven 不再实现 API 本身,而是通过Slf4jLoggerManager / Slf4jLogger映射到SLF4J API的ILoggerFactory / Logger。
Plexus Logger 和 LoggerManager 可以使用 Plexus 注解注入到 Plexus 组件中
import org.codehaus.plexus.logging.Logger; import org.codehaus.plexus.component.annotations.Component; import org.codehaus.plexus.component.annotations.Requirement; @Component( role = MyComponent.class ) public class DefaultMyComponent implements MyComponent { @Requirement private Logger logger; @Requirement private LoggerManager loggerManager; }
从 Maven 3.1.0 开始,SLF4J Logger 也可以直接使用,无需 Plexus。当然,这只能在 Maven 3.1.0 下运行,那么这种技术只能在 Maven 核心组件中安全使用。
import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class MyClass { final Logger logger = LoggerFactory.getLogger( MyClass.class ); }