Để compile source code trong Maven, thông thường chúng ta sẽ sử dụng Maven Compiler Plugin. Nó cho phép chúng ta cấu hình version của Java mà chúng ta muốn compile source code. Ví dụ như các bạn viết code sử dụng syntax của Java 7 và các bạn muốn compile source code cũng Java 7 thì các bạn có thể cấu hình như sau:
1 2 3 4 5 6 7 8 9 |
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>1.7</source> <target>1.7</target> </configuration> </plugin> |
Các bạn cũng có thể compile source code từ một phiên bản Java này sang một phiên bản Java khác. Ví dụ các bạn đang viết code theo chuẩn của Java 7 nhưng các bạn muốn code của mình compile source code theo chuẩn của Java 6 thì các bạn có thể sử dụng Maven Compiler Plugin như sau:
1 2 3 4 5 6 7 8 9 |
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>1.7</source> <target>1.6</target> </configuration> </plugin> |
Nếu các bạn đã sử dụng công cụ javac của Java để compile source code thì sẽ biết thẻ source và thẻ target trong cấu hình của plugin này tương ứng với option -source version và -target version khi bạn sử dụng javac để compile source code.
Các bạn cũng có thể khai báo các <properties> sau để cấu hình source và target của Java trong tập tin pom.xml của Maven project.
1 2 3 4 |
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties> |
Khi đó thì các bạn không cần phải khai báo source và target trong phần <configuration> của Maven Compiler Plugin nữa.
Trước Java 9, chúng ta sử dụng syntax 1.x với x là Java version để khai báo Java version trong Maven Compiler Plugin. Từ Java 9 trở đi thì các bạn không cần phải làm như vậy nữa, chỉ cần khai báo chính xác Java version mà các bạn muốn sử dụng.
Bây giờ thì các bạn có thể khai báo như sau:
1 2 3 4 5 6 7 8 9 |
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <configuration> <source>12</source> <target>12</target> </configuration> </plugin> |
Phần <properties> thì có thể khai báo như sau:
1 2 3 4 |
<properties> <maven.compiler.source>12</maven.compiler.source> <maven.compiler.target>12</maven.compiler.target> </properties> |
Từ Java 9 trở đi, công cụ javac cũng hỗ trợ thêm một option nữa là -release version để chỉ định Java version mà các bạn muốn build Java project. Đối với Maven thì các bạn có thể khai báo như sau:
1 2 3 |
<properties> <maven.compiler.release>17</maven.compiler.release> </properties> |