JBoss模块可以依赖jar吗?

时间:2016-10-03 12:09:59

标签: java jar jboss

我已经制作了一个jboss模块来提供一些基本代码。我想在将此模块部署到jboss时注销一些数据。我可以通过创建一个简单的类来实现这一点,如下所示:

@Singleton
@Startup
public MyClass {

    @PostConstruct
    public void init() {
        System.out.println("I am in here");
    }

}

上述initi方法有效,并且正确启动。注意,上面的模块是一个罐子。

但是,当我将上面的代码提取到自己的项目中,并将编译后的jar作为依赖项添加到同一个模块时,代码永远不会被执行。相反,如果我将它添加到war deployable,它可以按预期工作。即Maven依赖

<dependency>
     <groupId>com.myModuleCommon</groupId>
     <artifactId>moduleCommon</artifactId>
     <version>1.0.0</version>
</dependency>

我查看了文档here并检查了这个stackoverflow question我不确定这是否是我不能让jar模块依赖于另一个jar的原因。

我的问题是,为什么我的提取代码在启动时不会被调用(即上面的类)当用作模块的依赖项时,但它既可以作为内部类,也可以作为可部署的war中的依赖项? / p>

即在我的示例war文件中,我可以在WEB-INF / lib下看到提取的依赖项。但是,在我的jar模块中,Manifest文件中没有任何内容表示正在使用此依赖项。也许这是问题的一部分,可能有一些替代方法来指定模块中的依赖关系。

1 个答案:

答案 0 :(得分:0)

根据问题中的文档,我认为正确的答案是需要在MANIFEST或jboss-deplyment-structure.xml文件中显式添加模块依赖项。 Here is an article that shows how this can be done

即使用maven:

<configuration>
   <archive>
      <manifestEntries>
         <Dependencies>com.something.dependency</Dependencies>
      </manifestEntries>
   </archive>
</configuration>

即使用jboss xml文件

<jboss-deployment-structure>
   <deployment>
      <dependencies>
         <module name="com.something.dependency" />
      </dependencies>
   </deployment>
</jboss-deployment-structure>