├── src ├── site │ ├── markdown │ │ ├── second.md │ │ └── overview.md │ └── site.xml ├── test │ └── java │ │ └── com │ │ └── changenode │ │ └── CalculatorTest.java └── main │ └── java │ └── com │ └── changenode │ └── Calculator.java ├── .gitignore ├── .github └── workflows │ └── maven-package.yml ├── README.md ├── LICENSE └── pom.xml /src/site/markdown/second.md: -------------------------------------------------------------------------------- 1 | # Second Markdown Document 2 | 3 | Another Markdown page. 4 | 5 | You can [go back to the overview](overview.html). -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | 3 | # Package Files # 4 | *.jar 5 | *.war 6 | *.ear 7 | /target 8 | 9 | # Eclipse project files 10 | .settings 11 | .classpath 12 | .project 13 | 14 | # IDEA project files 15 | *.iml 16 | .idea 17 | .DS_Store 18 | -------------------------------------------------------------------------------- /src/site/site.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | org.apache.maven.skins 6 | maven-fluido-skin 7 | 1.10.0 8 | 9 | 10 | 11 | 12 | true 13 | true 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /src/site/markdown/overview.md: -------------------------------------------------------------------------------- 1 | # Markdown 2 | 3 | This page lives in the /src/markdown directory. 4 | 5 | The menu link to the page is added via the /src/site.xml file. 6 | 7 | ## Maven 8 | 9 | Here's the link to 10 | the [Maven Doxia plugin for Markdown](http://maven.apache.org/doxia/doxia/doxia-modules/doxia-module-markdown/index.html) 11 | . The [Doxia overview page shows using Markdown](http://maven.apache.org/doxia/references/index.html) by default. 12 | 13 | Unfortunately, there's not a lot of documentation there - but at least you have this project showing you a simple 14 | example! 15 | 16 | These Markdwon files will automatically be turned into .html files with the matching name. For example, this overview.md 17 | file gets turned into overview.html. 18 | 19 | Here's an example of linking to a [second markdown page](second.html). 20 | 21 | ## Editors 22 | 23 | What's nice about this is that you can use one of a very large number of Markdown editors for writing your Maven 24 | documentation. Just search for Markdown editor and your platform on Google and you should find several nice ones. 25 | 26 | [IntelliJ has a pretty nice Markdown editor](https://www.jetbrains.com/help/idea/markdown.html#code-blocks). 27 | -------------------------------------------------------------------------------- /.github/workflows/maven-package.yml: -------------------------------------------------------------------------------- 1 | # This workflow will build a Java project with Maven 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven 3 | 4 | name: Maven Basic Package 5 | 6 | on: 7 | push: 8 | branches: [ main ] 9 | pull_request: 10 | branches: [ main ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: macos-latest 16 | 17 | steps: 18 | - uses: actions/checkout@v2 19 | - name: Set up JDK 17 20 | uses: actions/setup-java@v1 21 | with: 22 | java-version: 17 23 | - name: Cache Maven packages 24 | uses: actions/cache@v2 25 | with: 26 | path: ~/.m2 27 | key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} 28 | restore-keys: ${{ runner.os }}-m2 29 | - name: Build with Maven 30 | run: mvn -B clean package site --file pom.xml 31 | - name: Deploy site docs output to GitHub Pages 32 | uses: JamesIves/github-pages-deploy-action@3.7.1 33 | with: 34 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 35 | BRANCH: gh-pages # The branch the action should deploy to. 36 | FOLDER: target/site # The folder the action should deploy. 37 | CLEAN: true # Automatically remove deleted files from the deploy branch 38 | -------------------------------------------------------------------------------- /src/test/java/com/changenode/CalculatorTest.java: -------------------------------------------------------------------------------- 1 | package com.changenode; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.slf4j.Logger; 5 | import org.slf4j.LoggerFactory; 6 | 7 | import static org.assertj.core.api.Assertions.assertThat; 8 | 9 | public class CalculatorTest { 10 | 11 | private Calculator calculator = new Calculator(); 12 | 13 | private static final Logger LOG = LoggerFactory.getLogger(CalculatorTest.class); 14 | 15 | // TODO Add some more javadoc here! 16 | @Test 17 | public void testAdd() { 18 | assertThat(calculator.value()).isZero(); 19 | calculator.add(5); 20 | assertThat(calculator.value()).isEqualTo(5); 21 | } 22 | 23 | @Test 24 | public void testSubtract() { 25 | assertThat(calculator.value()).isZero(); 26 | calculator.subtract(5); 27 | assertThat(calculator.value()).isEqualTo(-5); 28 | 29 | } 30 | 31 | @Test 32 | public void testMultiply() { 33 | assertThat(calculator.value()).isZero(); 34 | 35 | calculator.add(5).multiply(2); 36 | 37 | assertThat(calculator.value()).isEqualTo(10); 38 | 39 | } 40 | 41 | @Test 42 | public void testDivide() { 43 | assertThat(calculator.value()).isZero(); 44 | 45 | calculator.add(10).divide(2); 46 | 47 | assertThat(calculator.value()).isEqualTo(5); 48 | 49 | } 50 | 51 | /** 52 | * @see Why doesn't divide by zero return an error? 55 | */ 56 | @Test() 57 | public void testDivideByZero() { 58 | calculator.divide(2); 59 | LOG.info("Divide by zero results in... {}", calculator.value()); 60 | assertThat(calculator.value()).isEqualTo(0); 61 | } 62 | 63 | @Test 64 | public void testAbitrary() { 65 | assertThat(calculator.arbitrarilyComplexMethod("bar", 0, null, null, null)).isEqualTo(0); 66 | 67 | assertThat(calculator.arbitrarilyComplexMethodPart2("bar", 0, null, null, null)).isEqualTo(0); 68 | } 69 | 70 | } 71 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Maven Site Docs Example 2 | 3 | This is a Java project showing how to set up Apache Maven to generate a wide array of useful reports. You can see 4 | the generated reports for [this project here](https://wiverson.github.io/maven-site-docs-example/). 5 | 6 | Some reports I use on every project include 7 | the [code coverage report](https://wiverson.github.io/maven-site-docs-example/jacoco/index.html) and 8 | the [automatic dependency checker](https://wiverson.github.io/maven-site-docs-example/dependency-updates-report.html) - 9 | it's very nice to see what dependencies are out of date! 10 | 11 | Included reports: 12 | 13 | - Dependencies. Find out if any of your code or plugin dependencies are out of date. 14 | - Change log & SCM change info. Pull GitHub info and show what's changed. 15 | - Issues. Show open issues in GitHub. 16 | - Source x-ref. Clickable version of source code (prod & test). 17 | - Tag list. Find all of TODOs in your code. 18 | - JDepend. Various quality metrics. 19 | - JavaNCSS. Various code metrics for complexity, etc. 20 | - CPD. Find copy/pasted code in the repo. 21 | - PMD. Finds bugs & bad code. 22 | - Surefire. Test report, including execution times. 23 | - Checkstyle. Check for coding style issues. 24 | - JaCoCo. Code coverage reporting - how much code are your tests actually hitting? 25 | - SpotBugs. Static code analysis to find bugs. 26 | 27 | 28 | This [project includes a GitHub Action](https://github.com/wiverson/maven-site-docs-example/blob/main/.github/workflows/maven-package.yml) 29 | which automatically publishes the [generated documentation](https://wiverson.github.io/maven-site-docs-example/) to 30 | GitHub Pages. 31 | 32 | To use, simply check out and run: 33 | 34 | ``mvn clean verify site 35 | `` 36 | 37 | To view the generated reports locally, open ./target/site/index.html in your browser. 38 | 39 | If you only run mvn clean site, you will generate most of the reports, but not the code coverage data. Code coverage 40 | requires the test suite to run (part of verify). 41 | 42 | 11/6/2021 - Updated to Java 17. Added GitHub Action to automatically publish to GitHub Pages. 43 | 44 | 5/21/2021 - Version bumps. Bumped to Java 16. Added a bunch of reports back in, including JaCoCo. 45 | 46 | 10/20/2020 - Misc version bumps. Moved to Java 11 LTS. 47 | 48 | 7/3/2019 - As of this writing, both Jacoco and Cobertura appear to be broken for JDK 12. Hmm. Updated to Java 12, Maven 49 | 3.6.1. Made a few other changes. 50 | 51 | ## Requirements 52 | 53 | - [Maven 3.8.3+](http://maven.apache.org/) 54 | - As configured, targets Java 17. 55 | 56 | ## Further Reading 57 | 58 | You may find [SchemaSpy](http://schemaspy.org) to be helpful if you work with RDMBS packages such as MySQL, PostgreSQL, 59 | etc. SchemaSpy can be set up to generate great looking visual, clickable HTML reports documenting a schema directly from 60 | an RDBMS. Very helpful to ensure that your schema documentation is current at all times. 61 | 62 | ## Tip 63 | 64 | This error on macOS? 65 | 66 | `` 67 | [ERROR] xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), 68 | missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun 69 | `` 70 | 71 | Install/update XCode. 72 | -------------------------------------------------------------------------------- /src/main/java/com/changenode/Calculator.java: -------------------------------------------------------------------------------- 1 | package com.changenode; 2 | 3 | import java.util.EventListener; 4 | import java.util.StringTokenizer; 5 | 6 | /** 7 | * Simple Calculator for demonstration purposes. 8 | */ 9 | public class Calculator { 10 | 11 | private double state; 12 | 13 | /** 14 | * 15 | * @param value to add to register 16 | * @return the original Calculator object 17 | */ 18 | public Calculator add(double value) { 19 | state += value; 20 | return this; 21 | } 22 | 23 | /** 24 | * 25 | * @param value to subtract from the register 26 | * @return the original Calculator object 27 | */ 28 | public Calculator subtract(double value) { 29 | state -= value; 30 | return this; 31 | } 32 | 33 | /** 34 | * 35 | * @param value to multiply the register by 36 | * @return the original Calculator object 37 | */ 38 | public Calculator multiply(double value) { 39 | state = state * value; 40 | return this; 41 | } 42 | 43 | /** 44 | * 45 | * @param value to divide the register by 46 | * @return the original Calculator object 47 | */ 48 | public Calculator divide(double value) { 49 | state = state / value; 50 | return this; 51 | } 52 | 53 | /** 54 | * 55 | * @return current value of the register 56 | */ 57 | public double value() { 58 | return state; 59 | } 60 | 61 | /** 62 | * 63 | * @param value to apply transwarp value 64 | * @return the original Calculator object 65 | */ 66 | public Calculator transwarp(double value) { 67 | 68 | // TODO figure out the transwarp requirements. 69 | throw new UnsupportedOperationException("No transwarp defined."); 70 | } 71 | 72 | /** 73 | * 74 | * Method intended to trip the PMD violations error. Hopefully you find this method as horrifying as I do even without PMD. 75 | * 76 | * @param foo random string 77 | * @param bar random string 78 | * @param spam untyped Object FTW 79 | * @param eventListener some kind of events...? 80 | * @param stringTokenizer because why not? 81 | * @return some number 82 | */ 83 | public int arbitrarilyComplexMethod(String foo, int bar, Object spam, EventListener eventListener, StringTokenizer stringTokenizer) { 84 | 85 | try { 86 | System.out.println(foo); 87 | } catch (Exception e) { 88 | 89 | } 90 | 91 | try { 92 | System.out.println(foo); 93 | } catch (Exception e) { 94 | 95 | } 96 | 97 | 98 | if (foo == "bar") 99 | return 0; 100 | 101 | if (bar++ == -100) 102 | return Long.BYTES; 103 | 104 | return Integer.valueOf(foo + bar + spam.toString() + eventListener.toString() + stringTokenizer.toString()); 105 | } 106 | 107 | /** 108 | * Method intended to trip the CPM violations error 109 | * 110 | * @param foo random string 111 | * @param bar random string 112 | * @param spam untyped Object FTW 113 | * @param eventListener some kind of events...? 114 | * @param stringTokenizer because why not? 115 | * @return some number 116 | */ 117 | public int arbitrarilyComplexMethodPart2(String foo, int bar, Object spam, EventListener eventListener, StringTokenizer stringTokenizer) { 118 | try { 119 | System.out.println(foo); 120 | } catch (Exception e) { 121 | 122 | } 123 | 124 | try { 125 | System.out.println(foo); 126 | } catch (Exception e) { 127 | 128 | } 129 | 130 | if (foo == "bar") 131 | return 0; 132 | 133 | if (bar++ == -100) 134 | return Long.BYTES; 135 | 136 | return Integer.valueOf(foo + bar + spam.toString() + eventListener.toString() + stringTokenizer.toString()); 137 | } 138 | 139 | } 140 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Apache License 2 | Version 2.0, January 2004 3 | http://www.apache.org/licenses/ 4 | 5 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 6 | 7 | 1. Definitions. 8 | 9 | "License" shall mean the terms and conditions for use, reproduction, and 10 | distribution as defined by Sections 1 through 9 of this document. 11 | 12 | "Licensor" shall mean the copyright owner or entity authorized by the copyright 13 | owner that is granting the License. 14 | 15 | "Legal Entity" shall mean the union of the acting entity and all other entities 16 | that control, are controlled by, or are under common control with that entity. 17 | For the purposes of this definition, "control" means (i) the power, direct or 18 | indirect, to cause the direction or management of such entity, whether by 19 | contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the 20 | outstanding shares, or (iii) beneficial ownership of such entity. 21 | 22 | "You" (or "Your") shall mean an individual or Legal Entity exercising 23 | permissions granted by this License. 24 | 25 | "Source" form shall mean the preferred form for making modifications, including 26 | but not limited to software source code, documentation source, and configuration 27 | files. 28 | 29 | "Object" form shall mean any form resulting from mechanical transformation or 30 | translation of a Source form, including but not limited to compiled object code, 31 | generated documentation, and conversions to other media types. 32 | 33 | "Work" shall mean the work of authorship, whether in Source or Object form, made 34 | available under the License, as indicated by a copyright notice that is included 35 | in or attached to the work (an example is provided in the Appendix below). 36 | 37 | "Derivative Works" shall mean any work, whether in Source or Object form, that 38 | is based on (or derived from) the Work and for which the editorial revisions, 39 | annotations, elaborations, or other modifications represent, as a whole, an 40 | original work of authorship. For the purposes of this License, Derivative Works 41 | shall not include works that remain separable from, or merely link (or bind by 42 | name) to the interfaces of, the Work and Derivative Works thereof. 43 | 44 | "Contribution" shall mean any work of authorship, including the original version 45 | of the Work and any modifications or additions to that Work or Derivative Works 46 | thereof, that is intentionally submitted to Licensor for inclusion in the Work 47 | by the copyright owner or by an individual or Legal Entity authorized to submit 48 | on behalf of the copyright owner. For the purposes of this definition, 49 | "submitted" means any form of electronic, verbal, or written communication sent 50 | to the Licensor or its representatives, including but not limited to 51 | communication on electronic mailing lists, source code control systems, and 52 | issue tracking systems that are managed by, or on behalf of, the Licensor for 53 | the purpose of discussing and improving the Work, but excluding communication 54 | that is conspicuously marked or otherwise designated in writing by the copyright 55 | owner as "Not a Contribution." 56 | 57 | "Contributor" shall mean Licensor and any individual or Legal Entity on behalf 58 | of whom a Contribution has been received by Licensor and subsequently 59 | incorporated within the Work. 60 | 61 | 2. Grant of Copyright License. 62 | 63 | Subject to the terms and conditions of this License, each Contributor hereby 64 | grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, 65 | irrevocable copyright license to reproduce, prepare Derivative Works of, 66 | publicly display, publicly perform, sublicense, and distribute the Work and such 67 | Derivative Works in Source or Object form. 68 | 69 | 3. Grant of Patent License. 70 | 71 | Subject to the terms and conditions of this License, each Contributor hereby 72 | grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, 73 | irrevocable (except as stated in this section) patent license to make, have 74 | made, use, offer to sell, sell, import, and otherwise transfer the Work, where 75 | such license applies only to those patent claims licensable by such Contributor 76 | that are necessarily infringed by their Contribution(s) alone or by combination 77 | of their Contribution(s) with the Work to which such Contribution(s) was 78 | submitted. If You institute patent litigation against any entity (including a 79 | cross-claim or counterclaim in a lawsuit) alleging that the Work or a 80 | Contribution incorporated within the Work constitutes direct or contributory 81 | patent infringement, then any patent licenses granted to You under this License 82 | for that Work shall terminate as of the date such litigation is filed. 83 | 84 | 4. Redistribution. 85 | 86 | You may reproduce and distribute copies of the Work or Derivative Works thereof 87 | in any medium, with or without modifications, and in Source or Object form, 88 | provided that You meet the following conditions: 89 | 90 | You must give any other recipients of the Work or Derivative Works a copy of 91 | this License; and 92 | You must cause any modified files to carry prominent notices stating that You 93 | changed the files; and 94 | You must retain, in the Source form of any Derivative Works that You distribute, 95 | all copyright, patent, trademark, and attribution notices from the Source form 96 | of the Work, excluding those notices that do not pertain to any part of the 97 | Derivative Works; and 98 | If the Work includes a "NOTICE" text file as part of its distribution, then any 99 | Derivative Works that You distribute must include a readable copy of the 100 | attribution notices contained within such NOTICE file, excluding those notices 101 | that do not pertain to any part of the Derivative Works, in at least one of the 102 | following places: within a NOTICE text file distributed as part of the 103 | Derivative Works; within the Source form or documentation, if provided along 104 | with the Derivative Works; or, within a display generated by the Derivative 105 | Works, if and wherever such third-party notices normally appear. The contents of 106 | the NOTICE file are for informational purposes only and do not modify the 107 | License. You may add Your own attribution notices within Derivative Works that 108 | You distribute, alongside or as an addendum to the NOTICE text from the Work, 109 | provided that such additional attribution notices cannot be construed as 110 | modifying the License. 111 | You may add Your own copyright statement to Your modifications and may provide 112 | additional or different license terms and conditions for use, reproduction, or 113 | distribution of Your modifications, or for any such Derivative Works as a whole, 114 | provided Your use, reproduction, and distribution of the Work otherwise complies 115 | with the conditions stated in this License. 116 | 117 | 5. Submission of Contributions. 118 | 119 | Unless You explicitly state otherwise, any Contribution intentionally submitted 120 | for inclusion in the Work by You to the Licensor shall be under the terms and 121 | conditions of this License, without any additional terms or conditions. 122 | Notwithstanding the above, nothing herein shall supersede or modify the terms of 123 | any separate license agreement you may have executed with Licensor regarding 124 | such Contributions. 125 | 126 | 6. Trademarks. 127 | 128 | This License does not grant permission to use the trade names, trademarks, 129 | service marks, or product names of the Licensor, except as required for 130 | reasonable and customary use in describing the origin of the Work and 131 | reproducing the content of the NOTICE file. 132 | 133 | 7. Disclaimer of Warranty. 134 | 135 | Unless required by applicable law or agreed to in writing, Licensor provides the 136 | Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, 137 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, 138 | including, without limitation, any warranties or conditions of TITLE, 139 | NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are 140 | solely responsible for determining the appropriateness of using or 141 | redistributing the Work and assume any risks associated with Your exercise of 142 | permissions under this License. 143 | 144 | 8. Limitation of Liability. 145 | 146 | In no event and under no legal theory, whether in tort (including negligence), 147 | contract, or otherwise, unless required by applicable law (such as deliberate 148 | and grossly negligent acts) or agreed to in writing, shall any Contributor be 149 | liable to You for damages, including any direct, indirect, special, incidental, 150 | or consequential damages of any character arising as a result of this License or 151 | out of the use or inability to use the Work (including but not limited to 152 | damages for loss of goodwill, work stoppage, computer failure or malfunction, or 153 | any and all other commercial damages or losses), even if such Contributor has 154 | been advised of the possibility of such damages. 155 | 156 | 9. Accepting Warranty or Additional Liability. 157 | 158 | While redistributing the Work or Derivative Works thereof, You may choose to 159 | offer, and charge a fee for, acceptance of support, warranty, indemnity, or 160 | other liability obligations and/or rights consistent with this License. However, 161 | in accepting such obligations, You may act only on Your own behalf and on Your 162 | sole responsibility, not on behalf of any other Contributor, and only if You 163 | agree to indemnify, defend, and hold each Contributor harmless for any liability 164 | incurred by, or claims asserted against, such Contributor by reason of your 165 | accepting any such warranty or additional liability. 166 | 167 | END OF TERMS AND CONDITIONS 168 | 169 | APPENDIX: How to apply the Apache License to your work 170 | 171 | To apply the Apache License to your work, attach the following boilerplate 172 | notice, with the fields enclosed by brackets "[]" replaced with your own 173 | identifying information. (Don't include the brackets!) The text should be 174 | enclosed in the appropriate comment syntax for the file format. We also 175 | recommend that a file or class name and description of purpose be included on 176 | the same "printed page" as the copyright notice for easier identification within 177 | third-party archives. 178 | 179 | Copyright [yyyy] [name of copyright owner] 180 | 181 | Licensed under the Apache License, Version 2.0 (the "License"); 182 | you may not use this file except in compliance with the License. 183 | You may obtain a copy of the License at 184 | 185 | http://www.apache.org/licenses/LICENSE-2.0 186 | 187 | Unless required by applicable law or agreed to in writing, software 188 | distributed under the License is distributed on an "AS IS" BASIS, 189 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 190 | See the License for the specific language governing permissions and 191 | limitations under the License. 192 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 3 | 4.0.0 4 | 5 | com.changenode 6 | maven-site-docs-example 7 | 8 | 9 | 1.0-SNAPSHOT 10 | 11 | maven-site-docs-example 12 | Demonstrates the use of various Maven site documentation systems. 13 | 14 | 15 | https://wiverson.github.io/maven-site-docs-example/ 16 | 17 | 18 | 2013 19 | 20 | 21 | 22 | scm:git:https://github.com/wiverson/maven-site-docs-example.git 23 | scm:git:https://github.com/wiverson/maven-site-docs-example.git 24 | scm:git:https://github.com/wiverson/maven-site-docs-example.git 25 | 26 | 27 | 28 | 29 | 30 | The Apache Software License, Version 2.0 31 | https://www.apache.org/licenses/LICENSE-2.0.txt 32 | repo 33 | A business-friendly OSS license 34 | 35 | 36 | 37 | 38 | UTF-8 39 | 40 | 41 | 44 | 45 | GitHub 46 | https://github.com/wiverson/maven-site-docs-example/issues/ 47 | 48 | 49 | 50 | Will Iverson 51 | https://www.changenode.com/ 52 | 53 | 54 | 56 | 57 | 58 | wiverson 59 | Will Iverson 60 | wiverson@lambda.home 61 | 62 | 63 | will-iverson 64 | William Iverson 65 | wiverson AT gmail DOT com 66 | 67 | 68 | 69 | 70 | 71 | 74 | 75 | 76 | 77 | org.apache.maven.plugins 78 | maven-site-plugin 79 | 3.10.0 80 | 81 | 82 | org.apache.maven.plugins 83 | maven-surefire-plugin 84 | 3.0.0-M5 85 | 86 | 87 | org.apache.maven.plugins 88 | maven-jar-plugin 89 | 3.2.0 90 | 91 | 92 | org.apache.maven.plugins 93 | maven-antrun-plugin 94 | 1.8 95 | 96 | 97 | org.apache.maven.plugins 98 | maven-assembly-plugin 99 | 3.3.0 100 | 101 | 102 | org.apache.maven.plugins 103 | maven-release-plugin 104 | 3.0.0-M1 105 | 106 | 107 | org.apache.maven.plugins 108 | maven-project-info-reports-plugin 109 | 3.1.2 110 | 111 | 112 | org.apache.maven.plugins 113 | maven-dependency-plugin 114 | 3.2.0 115 | 116 | 117 | org.apache.maven.plugins 118 | maven-clean-plugin 119 | 3.1.0 120 | 121 | 122 | org.apache.maven.plugins 123 | maven-resources-plugin 124 | 3.2.0 125 | 126 | 127 | org.apache.maven.plugins 128 | maven-deploy-plugin 129 | 3.0.0-M1 130 | 131 | 132 | org.apache.maven.plugins 133 | maven-install-plugin 134 | 3.0.0-M1 135 | 136 | 137 | 138 | 139 | 140 | 141 | org.apache.maven.plugins 142 | maven-compiler-plugin 143 | 3.8.1 144 | 145 | 17 146 | 147 | 148 | 149 | 150 | 151 | 152 | org.jacoco 153 | jacoco-maven-plugin 154 | 0.8.7 155 | 156 | 157 | default-prepare-agent 158 | 159 | prepare-agent 160 | 161 | 162 | 163 | default-report 164 | 165 | report 166 | 167 | 168 | 169 | default-check 170 | 171 | check 172 | 173 | 174 | 175 | 176 | BUNDLE 177 | 178 | 179 | COMPLEXITY 180 | COVEREDRATIO 181 | 0.60 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | org.junit.jupiter 198 | junit-jupiter-api 199 | 5.8.2 200 | test 201 | 202 | 203 | org.junit.jupiter 204 | junit-jupiter-engine 205 | 5.8.2 206 | test 207 | 208 | 209 | 210 | 211 | 212 | org.assertj 213 | assertj-core 214 | 3.22.0 215 | test 216 | 217 | 218 | 219 | 220 | ch.qos.logback 221 | logback-classic 222 | 1.2.10 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | org.apache.maven.plugins 232 | maven-project-info-reports-plugin 233 | 3.1.2 234 | 235 | 236 | 239 | 240 | org.codehaus.mojo 241 | versions-maven-plugin 242 | 2.7 243 | 244 | 245 | 246 | dependency-updates-report 247 | plugin-updates-report 248 | property-updates-report 249 | 250 | 251 | 252 | 253 | 254 | 257 | 258 | org.apache.maven.plugins 259 | maven-changelog-plugin 260 | 2.3 261 | 262 | 263 | 264 | 265 | org.apache.maven.plugins 266 | maven-changes-plugin 267 | 2.12.1 268 | 269 | 270 | 271 | github-report 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | org.apache.maven.plugins 280 | maven-javadoc-plugin 281 | 3.3.1 282 | 283 | true 284 | 17 285 | 286 | 287 | 288 | 289 | 290 | org.apache.maven.plugins 291 | maven-jxr-plugin 292 | 3.0.0 293 | 294 | 295 | 297 | 298 | org.codehaus.mojo 299 | taglist-maven-plugin 300 | 2.4 301 | 302 | 303 | org.codehaus.mojo 304 | jdepend-maven-plugin 305 | 2.0 306 | 307 | 308 | org.codehaus.mojo 309 | javancss-maven-plugin 310 | 2.1 311 | 312 | 313 | org.apache.maven.plugins 314 | maven-pmd-plugin 315 | 3.14.0 316 | 317 | 318 | false 319 | 320 | 321 | 322 | 323 | org.apache.maven.plugins 324 | maven-surefire-report-plugin 325 | 3.0.0-M5 326 | 327 | 328 | 329 | report-only 330 | 331 | 332 | 333 | 334 | 335 | 336 | org.apache.maven.plugins 337 | maven-checkstyle-plugin 338 | 3.1.0 339 | 340 | 341 | 342 | checkstyle 343 | 344 | 345 | 346 | 347 | 348 | 349 | org.jacoco 350 | jacoco-maven-plugin 351 | 352 | 353 | 354 | 355 | report 356 | 357 | 358 | 359 | 360 | 361 | 362 | com.github.spotbugs 363 | spotbugs-maven-plugin 364 | 4.4.2 365 | 366 | 367 | 368 | 369 | --------------------------------------------------------------------------------