Maven 构建配置文件激活

Rue*_*oel 3 java maven-plugin maven maven-profiles

我知道有一些相关的主题,但我仍然不明白如何去做。

我正在学习 maven,目前正在创建构建配置文件。我想让 maven 自动检测我机器上当前安装的 java 版本。假设我在使用(jdk7)或 home 的办公室工作(jdk8),我希望pom.xml 中的<source>and<target>元素maven-compiler-plugin自动检测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>
Run Code Online (Sandbox Code Playgroud)

jav*_*apo 6

嗨,我不认为您可以自动让您的构建和环境感知,仅使用默认值,您需要一些配置文件的帮助及其激活功能,请参见此处。您可以做的是引入 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>
Run Code Online (Sandbox Code Playgroud)

希望有帮助:)


Nic*_*aux 5

对于 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>
Run Code Online (Sandbox Code Playgroud)

  • 或者对于 8 和 8 后:`&lt;jdk&gt;1.8&lt;/jdk&gt;` 和 `&lt;jdk&gt;[9,)&lt;/jdk&gt;` (2认同)