Java 在DependencyManager中定义时,配置文件部分中的Maven依赖项版本

Java 在DependencyManager中定义时,配置文件部分中的Maven依赖项版本,java,maven,Java,Maven,我们在主pom的dependencyManagement部分中定义了几个项目模块,以便可以在子pom中使用它们,但保持一致的版本。我认为这是相当标准的 现在,在子POM的profiles部分中,我想添加一个依赖项,而不是定义版本,因为我知道这个依赖项定义存在于父POMdependencManagement部分中 e、 g 。。。 开发人员 我们的项目 模块1 ... 我在构建中看到一些奇怪的行为,我想知道这种方法是否被允许,或者您是否总是必须在概要文件部分定义依赖项的版本 回答我自己的问题

我们在主pom的
dependencyManagement
部分中定义了几个项目模块,以便可以在子pom中使用它们,但保持一致的版本。我认为这是相当标准的

现在,在子POM的
profiles
部分中,我想添加一个依赖项,而不是定义版本,因为我知道这个依赖项定义存在于父POM
dependencManagement
部分中

e、 g

。。。
开发人员
我们的项目
模块1
... 
我在构建中看到一些奇怪的行为,我想知道这种方法是否被允许,或者您是否总是必须在概要文件部分定义依赖项的版本


回答我自己的问题: 您可以使用
dependencyManagement
部分中定义的依赖项,而不使用
profiles
部分中的版本,如我的示例中所示


我在下面添加了一条注释,解释了我所看到的奇怪行为。

你能给出一个你在构建中注意到的奇怪行为的例子吗?首先,请添加显示行为的构建输出…除了在概要文件中定义依赖项没有真正意义之外…因为听起来你好像在尝试为其创建工件不同的环境…我提到的“奇怪”行为是,无论如何,在我的例子中,工件没有包含在构建所生成的war文件中。通过进一步的调查,我发现模块的
depencymanagement
定义的作用域设置为test,这解释了为什么它没有被包括在战争中。
...

<profiles>
    <profile>
        <id>DEV_PC</id>
        <dependencies>
            <dependency>
                <groupId>com.our.project</groupId>
                <artifactId>module1</artifactId>            
            </dependency>
        </dependencies>
    </profile>
    <profile>
 ...