需求和需要模块声明中的传递模块语句有什么区别?
例如:
module foo {
    requires java.base;
    requires transitive java.compiler;
}
你认为删除maven pom中可以找到的每个传递依赖是一个好习惯吗?
示例:
我的项目依赖于A和B. 
B也是A的传递依赖.
我应该将B保留在我的pom中还是删除它?  
什么是最好的:
拥有所有已知的罐子,甚至是传递的罐子,在pom上宣布或只保留顶级罐子?
这有点主观,但我试图用一些传递依赖来清理一些巨大的poms(父母和孩子).我想让我的pom尽可能简单,但我也希望它们可以维护.
需求和需要模块声明中的静态模块语句有什么区别?
例如:
module bar {
    requires java.compiler;
    requires static java.base;
}
在将我们的一个项目迁移到Java 9(build 9 + 181)时,我遇到了一个特殊的问题,在类型推断和java模块相关的某些库中看起来像是一个不正确的实现.我使用的是dropwizard-core(1.1.0)和guice(4.1.0)配置如下:
public class CustomService extends io.dropwizard.Application<CustomServiceConfig> {
    public static void main(String[] args) throws Exception {
        new CustomService().run(args);
    }
    // other initializations
    @Override
    public void run(CustomServiceConfig config, io.dropwizard.setup.Environment environment) throws Exception {
        com.google.inject.Injector injector = createInjector(config, environment);
        environment.jersey().register(injector.getInstance(SomeResource.class)); //line 45
        environment.healthChecks().register("DBHealth", injector.getInstance(HealthCheck.class)); 
        environment.servlets().addFilter("Filter-Name", SomeFilter.class)
                .addMappingForUrlPatterns(EnumSet.allOf(DispatcherType.class), true, "/*");
    }
    private com.google.inject.Injector createInjector(CustomServiceConfig config, Environment environment) {
        return com.google.inject.Guice.createInjector(new CustomServiceModule(config, environment));
    }
}
public class CustomServiceModule extends com.google.inject.AbstractModule { …java ×3
java-9 ×3
java-module ×3
module-info ×2
dependencies ×1
java-8 ×1
maven ×1
maven-2 ×1
requires ×1