Maven 构建配置文件激活
Maven Build Profile Activation
我知道有一些相关的主题,但我还是不明白该怎么做。
我正在学习 Maven,目前正在创建构建配置文件。我希望 Maven 自动检测我机器上当前安装的 java 版本。假设我在使用 (jdk7) 或家庭 (jdk8)
的办公室工作,我想要 [=] 中的 <source>
和 <target>
元素14=] pom.xml 自动检测 java -version
无论环境如何(办公室/家庭)。我读过 activation
但不能完全理解其目的。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
</plugins>
</build>
您好,我不认为您可以让您的构建环境自动感知,仅使用默认值,您需要配置文件及其激活功能的一些帮助,请参阅 here。你可以做的是引入 2 个不同的配置文件,在每个配置文件中你可以定义你想要的 JDK,如果存在,它将为你激活,然后你可以配置具有不同源/目标的编译器插件,或者,只需为将指示 java 版本的 属性 设置不同的值。示例:
<profiles>
<profile>
<id>java8</id>
<activation>
<jdk>1.8</jdk>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>java7</id>
<activation>
<jdk>1.7</jdk>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
希望对您有所帮助:)
您需要声明两个互斥的配置文件,一个用于 jdk7 个构建,一个用于 jdk8 个构建。每个配置文件声明都有两个重要部分:
activation
元素就像一个条件,嵌套在 .您的个人资料是打开还是关闭?您需要设置基于 jdk
的激活。您的 jdk7 个人资料示例:
<activation>
<jdk>1.7</jdk>
</activation>
接下来您需要定义 属性 或当您的配置文件处于活动状态时设置的属性。 jdk7 的示例:
<properties>
<jdk.version>1.7<jdk.version>
</properties>
这两个部分都与 id
元素(例如 <id>jdk7</id>
)组合并嵌套在 profile
元素中。
如果您在使 jdk 检测激活工作时遇到任何问题,我建议您尝试使用显式触发器,例如使用 mvn -P jdk7
调用 maven。
听起来,您希望在 pom.xml
中定义 jdk7 和 jdk8 配置文件。但另一种选择是拥有一个始终打开的配置文件,但在 ~/.m2/settings.xml
文件中以不同方式为配置文件定义 jdk.version
属性。办公室的 settings.xml 文件将具有 jdk7 个属性;在家里它会 jdk8.
http://maven.apache.org/guides/introduction/introduction-to-profiles.html
对于 Java 9,可以使用以下配置文件。
<profiles>
<profile>
<id>java8</id>
<activation>
<jdk>1.8</jdk>
</activation>
(...)
</profile>
<profile>
<id>java9</id>
<activation>
<jdk>9</jdk>
</activation>
(...)
</profile>
</profiles>
我知道有一些相关的主题,但我还是不明白该怎么做。
我正在学习 Maven,目前正在创建构建配置文件。我希望 Maven 自动检测我机器上当前安装的 java 版本。假设我在使用 (jdk7) 或家庭 (jdk8)
的办公室工作,我想要 [=] 中的 <source>
和 <target>
元素14=] pom.xml 自动检测 java -version
无论环境如何(办公室/家庭)。我读过 activation
但不能完全理解其目的。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
</plugins>
</build>
您好,我不认为您可以让您的构建环境自动感知,仅使用默认值,您需要配置文件及其激活功能的一些帮助,请参阅 here。你可以做的是引入 2 个不同的配置文件,在每个配置文件中你可以定义你想要的 JDK,如果存在,它将为你激活,然后你可以配置具有不同源/目标的编译器插件,或者,只需为将指示 java 版本的 属性 设置不同的值。示例:
<profiles>
<profile>
<id>java8</id>
<activation>
<jdk>1.8</jdk>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>java7</id>
<activation>
<jdk>1.7</jdk>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
希望对您有所帮助:)
您需要声明两个互斥的配置文件,一个用于 jdk7 个构建,一个用于 jdk8 个构建。每个配置文件声明都有两个重要部分:
activation
元素就像一个条件,嵌套在 .您的个人资料是打开还是关闭?您需要设置基于 jdk
的激活。您的 jdk7 个人资料示例:
<activation>
<jdk>1.7</jdk>
</activation>
接下来您需要定义 属性 或当您的配置文件处于活动状态时设置的属性。 jdk7 的示例:
<properties>
<jdk.version>1.7<jdk.version>
</properties>
这两个部分都与 id
元素(例如 <id>jdk7</id>
)组合并嵌套在 profile
元素中。
如果您在使 jdk 检测激活工作时遇到任何问题,我建议您尝试使用显式触发器,例如使用 mvn -P jdk7
调用 maven。
听起来,您希望在 pom.xml
中定义 jdk7 和 jdk8 配置文件。但另一种选择是拥有一个始终打开的配置文件,但在 ~/.m2/settings.xml
文件中以不同方式为配置文件定义 jdk.version
属性。办公室的 settings.xml 文件将具有 jdk7 个属性;在家里它会 jdk8.
http://maven.apache.org/guides/introduction/introduction-to-profiles.html
对于 Java 9,可以使用以下配置文件。
<profiles>
<profile>
<id>java8</id>
<activation>
<jdk>1.8</jdk>
</activation>
(...)
</profile>
<profile>
<id>java9</id>
<activation>
<jdk>9</jdk>
</activation>
(...)
</profile>
</profiles>