|
| 1 | +<!-- |
| 2 | +Licensed to the Apache Software Foundation (ASF) under one |
| 3 | +or more contributor license agreements. See the NOTICE file |
| 4 | +distributed with this work for additional information |
| 5 | +regarding copyright ownership. The ASF licenses this file |
| 6 | +to you under the Apache License, Version 2.0 (the |
| 7 | +"License"); you may not use this file except in compliance |
| 8 | +with the License. You may obtain a copy of the License at |
| 9 | +
|
| 10 | +http://www.apache.org/licenses/LICENSE-2.0 |
| 11 | +
|
| 12 | +Unless required by applicable law or agreed to in writing, |
| 13 | +software distributed under the License is distributed on an |
| 14 | +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| 15 | +KIND, either express or implied. See the License for the |
| 16 | +specific language governing permissions and limitations |
| 17 | +under the License. |
| 18 | +--> |
| 19 | + |
| 20 | +The Compiler Plugin is used to compile the sources of your project. |
| 21 | +The default compiler used to compile Java sources is `javac`. |
| 22 | +If you want to use another compiler, refer to the [using Non-Javac Compilers](/non-javac-compilers.html) page. |
| 23 | + |
| 24 | +**NOTE:** To know more about the JDK `javac`, please see the |
| 25 | +[tool guide](https://docs.oracle.com/en/java/javase/24/docs/specs/man/javac.html). |
| 26 | + |
| 27 | +# Goals Overview |
| 28 | + |
| 29 | +The Compiler Plugin has two goals. |
| 30 | +Both are already bound to their proper phases within the Maven Lifecycle and are therefore, |
| 31 | +automatically executed during their respective phases. |
| 32 | + |
| 33 | +* [compiler:compile](./compile-mojo.html) is bound to the compile phase and is used to compile the main source files. |
| 34 | +* [compiler:testCompile](./testCompile-mojo.html) is bound to the test-compile phase and is used to compile the test source files. |
| 35 | + |
| 36 | +# Usage |
| 37 | + |
| 38 | +General instructions on how to use the Compiler Plugin can be found on the [usage page](./usage.html). |
| 39 | +Some more specific use cases are described in the examples given below. |
| 40 | + |
| 41 | +In case you still have questions regarding the plugin's usage, please have a look at the [FAQ](./faq.html) |
| 42 | +and feel free to contact the [user mailing list](./mailing-lists.html). |
| 43 | +The posts to the mailing list are archived and could already contain the answer to your question as part of an older thread. |
| 44 | +Hence, it is also worth browsing/searching the [mail archive](./mailing-lists.html). |
| 45 | + |
| 46 | +If you feel the plugin is missing a feature or has a defect, |
| 47 | +you can file a feature request or bug report in our [issue tracker](./issue-management.html). |
| 48 | +When creating a new issue, please provide a comprehensive description of your concern. |
| 49 | +Especially for fixing bugs it is crucial that the developers can reproduce your problem. |
| 50 | +For this reason, entire debug logs, POMs or most preferably little demo projects attached to the issue are very much appreciated. |
| 51 | +Of course, patches are welcome, too. |
| 52 | +Contributors can check out the project from our [source repository](./scm.html) and will find supplementary information |
| 53 | +in the [guide to helping with Maven](http://maven.apache.org/guides/development/guide-helping.html). |
| 54 | + |
| 55 | +# Examples |
| 56 | + |
| 57 | +To provide you with better understanding on some usages of the Compiler Plugin, |
| 58 | +you can take a look into the following examples: |
| 59 | + |
| 60 | +* [Annotation processors](./examples/annotation-processor.html) |
| 61 | +* [Arguments related to Java Platform Module System](./examples/jpms_args.html) |
| 62 | +* [Compile using a different JDK](./examples/compile-using-different-jdk.html) |
| 63 | +* [Compile using a non-javac compilers](./examples/non-javac-compilers.html) |
| 64 | +* [Compile using the --source and --target javac options](./examples/set-compiler-source-and-target.html) |
| 65 | +* [Compile using the --release javac option](./examples/set-compiler-release.html) |
| 66 | +* [Compile using memory allocation enhancements](./examples/compile-with-memory-enhancements.html) |
| 67 | +* [Java 9+ projects with module-info](./examples/module-info.html) |
| 68 | +* [Pass compiler arguments](./examples/pass-compiler-arguments.html) |
0 commit comments