0

我有一个关于 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有依赖关系。corecorejson

为了获得所有需要的依赖项,我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.FinalWildFly 更改1.0.7.Final为 JBoss。

为了做到这一点,我试图wildfly-javaee7-with-tools进入个人资料。我的第一个猜测是只将此依赖项移动到配置文件中。但后来这个json罐子没有被包括在内。之后我也尝试json像上面那样移动。

4

1 回答 1

0

如果没有完整地看到原始的未配置文件或配置文件,则无法说出任何准确但有根据的猜测。

json在配置文件依赖管理。

它是否也在pom没有版本的主要依赖项中?如果不是,它将不会被复制到 lib 或打包。它仅由配置文件管理<dependencyManagement>

是否json需要管理每个配置文件?如果像示例中那样复制每个配置文件,它似乎${version.json}无论如何都会是相同的。

对我来说,似乎修复可能是您json从配置文件中删除依赖项管理并将其作为正常依赖项添加到主要依赖项 - 这只是为了使分析更简单 - 它可以被管理,但如果不需要,json直接将版本设置为依赖项。

于 2017-10-24T19:27:22.077 回答