/mekhq

MekHQ is a java helper program for the MegaMek game that allows users to load a list of entities from an XML file, perform repairs and customizations, and then save the new entities to another XML file that can be loaded into MegaMek.

Primary LanguageJava

MekHQ

Table of Contents

  1. About
  2. Status
  3. Compiling
  4. Support
  5. License
  6. Dependencies

1. About

MekHQ is a Java helper program for the MegaMek game that allows users to load a list of entities from an XML file, perform repairs and customizations, and then save the new entities to another XML file that can be loaded into MegaMek. For more details, see our website at http://megamek.org/ and feel free to join our Discord by clicking on the button below.

Discord

2. Status

Type MM Status MML Status MHQ Status
Latest Release Release Release Release
Javadocs javadoc javadoc javadoc
License GPLv3 license GPLv3 license GPLv3 license
Build (CI) MM Nightly CI MML Nightly CI MHQ Nightly CI
Issues GitHub Issues GitHub Issues GitHub Issues
PRs GitHub Open Pull Requests GitHub Open Pull Requests GitHub Open Pull Requests
Lines MM Lines MHQ Lines
LGTM Code Quality LGTM Code Quality LGTM Code Quality LGTM Code Quality
LGTM Alerts LGTM Code Alerts LGTM Code Alerts LGTM Code Alerts
Code Coverage MegaMek codecov.io MegaMekLab codecov.io MekHQ codecov.io

Note that not everything has been implemented across the suite at this time, which will lead to gaps.

3. Compiling

  1. Install Gradle.

  2. Follow the instructions on the wiki for using Gradle.

4. Support

For bugs, crashes, or other issues you can fill out a GitHub issue request.

5. License

MekHQ is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
MekHQ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with MekHQ. If not, see <http://www.gnu.org/licenses/>.

Please see MekHQ/license.txt for more information.

6. Dependencies

These are all listed in the format "{ Project Name } ({ Optional - Alternate Project Name }) ({ Optional - Description }) : { Implemented Version } { Current Version Badge } : { Project Link }"

6.1. Internal Dependencies

MegaMek (MM) : N/A : https://github.com/MegaMek/megamek

MegaMekLab (MML) : N/A : https://github.com/MegaMek/megameklab

6.2. Build Script Dependencies

launch4j : 2.5.1 launch4j : https://github.com/TheBoegl/gradle-launch4j

grgit : 4.1.1 Maven Central : https://github.com/ajoberstar/grgit

6.3. Suitewide Dependencies

Jakarta XML Bind API (JAXB) (XML Setup) : 2.3.2 Maven Central : https://eclipse-ee4j.github.io/jaxb-ri/

Log4j2 (Logging) : 2.17.1 Maven Central : https://logging.apache.org/log4j/2.x/

6.4. MegaMek Dependencies

Jackson (Jackson JSON) (JSON setup used for the internal graphical preference setup) : 2.13.1 Jackson : https://github.com/FasterXML/jackson-core

Flat Look and Feel (FlatLaf) (Expanded Themes, including Dark Mode) : 2.0.1 Maven Central : https://github.com/JFormDesigner/FlatLaf

SerialKiller (Java Deserialization Security) : Latest Develop : https://github.com/ikkisoft/SerialKiller

Jakarta Mail : 2.0.1 Maven Central : https://eclipse-ee4j.github.io/mail/

XStream (Legacy XML Setup) : 1.4.14 Maven Central : http://x-stream.github.io/

Apache Commons Text : 1.9 Maven Central : https://commons.apache.org/proper/commons-text/

Apache Freemarker : 2.3.31 Maven Central : https://freemarker.apache.org/

JAXB Runtime (JAXB) (XML Setup) : 2.3.2 Maven Central : https://eclipse-ee4j.github.io/jaxb-ri/

JUnit (Unit Testing) : 4.13.2 Maven Central : https://junit.org/junit5/

Mockito (Unit Testing) : 4.2.0 Maven Central : https://site.mockito.org/

6.5. MegaMekLab Dependencies

Apache PDFBox : 2.0.24 Maven Central : https://pdfbox.apache.org/

Apache XMLGraphics Batik Bridge : 1.14 Maven Central : https://xmlgraphics.apache.org/batik/

Apache XMLGraphics Batik Codec : 1.14 Maven Central : https://xmlgraphics.apache.org/batik/

Apache XMLGraphics Batik Dom : 1.14 Maven Central : https://xmlgraphics.apache.org/batik/

Apache XMLGraphics Batik Rasterizer : 1.14 Maven Central : https://xmlgraphics.apache.org/batik/

Apache XMLGraphics Batik SVGGen : 1.14 Maven Central : https://xmlgraphics.apache.org/batik/

Apache XMLGraphics FOP : 2.7 Maven Central : https://xmlgraphics.apache.org/fop/

6.6. MekHQ Dependencies

Javax Vecmath : 1.5.2 Maven Central

Joda Time : 2.10.13 Maven Central : https://www.joda.org/joda-time/

Apache Commons CSV : 1.8 Maven Central : https://commons.apache.org/proper/commons-csv/

Apache Commons Math3 : 3.6.1 Maven Central : https://commons.apache.org/proper/commons-math/

Apache Commons Text : 1.9 Maven Central : https://commons.apache.org/proper/commons-text/

Commonmark : 0.18.1 Maven Central : https://commonmark.org/

JFreechart : 1.5.3 Maven Central : https://www.jfree.org/jfreechart/

Joda Money (Finances) : 1.0.1 Maven Central : https://www.joda.org/joda-money/

JAXB Runtime (JAXB) (XML Setup) : 2.3.2 Maven Central : https://eclipse-ee4j.github.io/jaxb-ri/

JUnit (Unit Testing) : 4.13.2 Maven Central : https://junit.org/junit5/

Mockito (Unit Testing) : 4.2.0 Maven Central : https://site.mockito.org/