我有一个关于 JBoss 和 WildFly 的 BOM 用法的一般性问题。是否可以使用不同的配置文件为 JBoss 7 和 WildFly 10 构建项目?
我试图将 BOM 定义从 WildFly 复制到这样的配置文件中:
<profile>
<id>WildFly10</id>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.wildfly.bom</groupId>
<artifactId>wildfly-javaee7-with-tools</artifactId>
<version>${version.jboss.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- JSON -->
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>${version.json}</version>
</dependency>
</dependencies>
</dependencyManagement>
</profile>
当然是使用 JBoss7 配置文件。
但是这样它就不会将重要的库添加到 lib 文件夹中,即这个定义是在一个 ear pom 中,一个子项目(war)添加了 json 依赖项。如果没有配置文件,maven 会将 json jar 添加到 lib 文件夹中,但如果我将它放在配置文件中则不会。
在我读到更改配置文件中的依赖项是一种反模式 [ 1 ] 之后,我想知道如何为 JBoss7 和 WildFly 10 构建我的项目。
更新
好吧,抱歉这个问题的快速拍摄。这里有更多细节。
项目结构:
|-parent (pom)
|- myapp (war)
|- core (jar)
|- deployment (ear)
deployment
构建整个耳朵的项目也是如此,它包含myapp
一个网络应用程序和core
一个库。对和tomyapp
有依赖关系。core
core
json
为了获得所有需要的依赖项,我wildfly-javaee7-with-tools
在依赖项管理中包含了正确的版本。也是其中json
定义的版本。该core
项目将json
库作为正常依赖项。
在这一点上,这应该是相当标准的。但问题是我希望能够为 JBoss 7 和 WildFly 10 构建,因为我必须改变
<dependency>
<groupId>org.wildfly.bom</groupId>
<artifactId>wildfly-javaee7-with-tools</artifactId>
<version>${version.jboss.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
至
<dependency>
<groupId>org.jboss.bom</groupId>
<artifactId>jboss-javaee-6.0-with-tools</artifactId>
<version>${version.jboss.bom}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
当然${version.jboss.bom}
会从10.1.0.Final
WildFly 更改1.0.7.Final
为 JBoss。
为了做到这一点,我试图wildfly-javaee7-with-tools
进入个人资料。我的第一个猜测是只将此依赖项移动到配置文件中。但后来这个json
罐子没有被包括在内。之后我也尝试json
像上面那样移动。