Even if you just want to study the code, it probably makes a lot of sense to do so in an IDE.
Download the installer for the latest Eclipse version (currently this is Eclipse Oxygen) from http://www.eclipse.org/.
The installer will give you a choice about which “edition” to install.
“Eclipse IDE for Java Developers” will probably do. We found that at least for us, the “Eclipse IDE for Java EE Develeopers” has too much unneeded overhead.
We use lombok to reduce boiler plate code.
To enable your local Eclipse to compile the code, please go to https://projectlombok.org/download.html and follow the instructions for Eclipse. You might also want to check out our metasfresh-issue #1125 for further details.
eclipse.ini file in the Eclipse instalation directory and check the
This is the java version Eclipse itself will run with. Please make sure that it is a recent version and a that it’s a JDK. Why that?
jaxb2-maven-pluginplugin might fail (thank you to stackoverflow and also to this blogpost).
-vmparameter in your
[...] --launcher.appendVmargs -vm C:\Program Files\Java\jdk1.8.0_131\bin\javaw.exe -vmargs -Dosgi.requiredJavaVersion=1.8 -Dosgi.email@example.com/eclipse-workspace [...]
Also, we recomment that you make sure to start eclipse with more than the default 1GB of RAM.
-Xmx1024M within the
eclipse.ini file and change it to e.g.
-Xmx4096M (the more the better).
The dependency tree of metasfresh contains a few artifacts that are not part of the default maven repository.
Therefore we recommend that you add our public repository to your maven
Please take a look here for details.
C:\development\repos, because it’s where all my working copies are located.
eclipse-configfolder in the metasfresh-dev repository.
pom.xml. This can be done with the shortcut
Alt-F5or via right-click on the project in question, and then:
/de.metas.endcustomer.mf15.swingui/de.metas.SwingUIApplication_mf15_with_embedded_server.launchstarts the client with an embedded server.
..._jrebel.launchfor both client and server. You can them in case you have the JRebel Eclipse plugin.
Note that until eclipse version neon2 the lombok integration is tricky. The recommended eclipse version is neon3, as the lombok integration works out of the box with the lombok gui installer (also across multiple eclipse projects). See here for further infos.
The Eclipse Mylyn to GitHub connector is a plugin that allows you to connect mylyn to the different metasfresh repos and use mylyns features to focus on the particular issue at hand.
The connector can be installed via Eclipse’s “Help -> Install New Software…” Dialog:
With this connector installed, you can add GitHub-based mylyn repositories to your Eclipse instalation.
We don’t yet have experince with code contributions that were created with e.g. Netbeans or IntelliJ.
We don’t think there is a need to dictate a particular IDE,
however, when contributing, please make sure to text-format your contribution in a way that allows us to get a meaningfull diff. to that end, note that your IDE might be able to import our Eclipse formatting spec.