Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当没有通过-P指定概要文件时,执行哪个Maven概要文件?_Java_Maven - Fatal编程技术网

Java 当没有通过-P指定概要文件时,执行哪个Maven概要文件?

Java 当没有通过-P指定概要文件时,执行哪个Maven概要文件?,java,maven,Java,Maven,我对Maven不熟悉,我正在试图弄清楚它在我们现有项目中是如何工作的 项目和文件夹结构基本相同 A A\1 A\2 A\3 每个文件夹中都有一个pom文件。每个pom包含一个或多个已定义的配置文件。 我不明白的是这个命令 A> mvn安装 如何执行所有pom以及正在执行哪些配置文件 默认情况下,我看不到任何标记为active的标记 当我需要花时间在第1步学习和构建一些项目时,我感到沮丧,但在团队中没有任何人知道Maven的第一件事时,我被迫在第50步。当然,解决方案总是在昨天到期。除非您的配置文

我对Maven不熟悉,我正在试图弄清楚它在我们现有项目中是如何工作的

项目和文件夹结构基本相同

A

A\1

A\2

A\3

每个文件夹中都有一个pom文件。每个pom包含一个或多个已定义的配置文件。 我不明白的是这个命令

A> mvn安装

如何执行所有pom以及正在执行哪些配置文件

默认情况下,我看不到任何标记为active的标记


当我需要花时间在第1步学习和构建一些项目时,我感到沮丧,但在团队中没有任何人知道Maven的第一件事时,我被迫在第50步。当然,解决方案总是在昨天到期。

除非您的配置文件被默认标记为activeByDefault,否则没有配置文件处于活动状态。

除非您的配置文件被默认标记为activeByDefault,否则没有配置文件处于活动状态。

可以在POM、父POM和您的设置中指定。因此,仅仅查看POM文件可能是不够的

运行
mvn帮助:活动配置文件
将为您提供所有活动配置文件的列表以及来源(pom或设置)。
运行
mvn help:all profiles
将为您提供所有可用配置文件、活动配置文件以及来源(pom或设置)的列表

运行
mvn帮助:effective pom-Doutput=full pom.xml
将为您提供完整的pom文件(在
full pom.xml
生成的文件中),作为当前pom、父pom和设置的合并。这将是真实的全部来源

您描述的结构是针对多模块maven项目的,这意味着
a
是项目(具有打包
pom
,其唯一交付是pom文件,其唯一功能是提供它将构建的
模块)。
但是,请注意,在Maven聚合中,和是两个不同的概念,它们经常一起使用:聚合意味着我将构建所有定义的模块,作为构建的一部分;继承意味着我将从父pom继承配置。同样地,
A\1
可以继承project
A
的概要文件,如果在
A\1
的pom中,您会发现
A
被定义为
parent
(通常情况下,有一个聚合器,它也是所有已定义模块的父级)

为什么要有聚合器?在子模块之间保持良好的关注点分离的同时,集中构建和定位相关子项目。此外,作为Maven的最佳实践,一个项目应该只生成一个人工制品,因此,例如,一个web应用程序在一个模块中具有逻辑,在另一个模块中具有war生成,在另一个模块中具有ear生成

为什么要继承?要有一个集中的位置来设置共享/公共配置,如配置文件,但也包括依赖项和

最后,这是一个常见的误解,因此也要意识到:

  • 如果配置文件在Maven中默认处于活动状态,那么它将是默认构建的一部分。但是,如果您通过命令行(通过
    -P
    选项)激活配置文件,则您将激活请求的配置文件,但也会自动停用默认激活的配置文件
  • 上述机制不适用于maven安装的
    settings.xml
    中定义的概要文件(默认情况下,如果激活,将应用于相关机器上的所有maven构建)
Update关于这个答案的进一步说明被一些注释所利用:Maven构建被指定为
build
部分(插件执行流)的一部分,它不一定需要配置文件。概要文件通常被定义为向构建添加进一步的行为,但是无论任何可激活的概要文件如何,成功构建都是一个好的实践,也就是说,我不必知道运行构建所定义的概要文件,这是maven的核心概念,协调和约定优于配置:给定一个maven项目,我总是认为只要
mvn clean install
就可以实现所需的魔力。
关于从Maven开始的常见问题列表,这位官员已经提供了很好的帮助。
另外,请查看配置文件的官方介绍,以获取有关配置文件的进一步指导。

可以在您的POM、您的家长POM和您的设置中指定。因此,仅仅查看POM文件可能是不够的

运行
mvn帮助:活动配置文件
将为您提供所有活动配置文件的列表以及来源(pom或设置)。
运行
mvn help:all profiles
将为您提供所有可用配置文件、活动配置文件以及来源(pom或设置)的列表

运行
mvn帮助:effective pom-Doutput=full pom.xml
将为您提供完整的pom文件(在
full pom.xml
生成的文件中),作为当前pom、父pom和设置的合并。这将是真实的全部来源

您描述的结构是针对多模块maven项目的,这意味着
a
是项目(具有打包
pom
,其唯一交付是pom文件,其唯一功能是提供它将构建的
模块)。
但是,请注意,在Maven聚合中,和是两个不同的概念,它们经常一起使用:聚合意味着我将构建所有定义的模块,作为构建的一部分;继承意味着我将从父pom继承配置。同样地,
A\1
可以继承project
A
的概要文件,如果在
A\1
的pom中,您会发现
A
被定义为
parent
(通常情况下,有一个聚合器,它也是所有已定义模块的父级)

为什么要有聚合器?集中构建和定位相关子项目,同时