Stendhal on Eclipse: Difference between revisions

Jump to navigation Jump to search
Content deleted Content added
imported>Hendrik Brummermann
Do not add the project root folder as source path
imported>Hendrik Brummermann
 
(463 intermediate revisions by 16 users not shown)
Line 1: Line 1:
{{Navigation for Stendhal Top|Building & Hosting}}
==First Steps==
# First of all open the view called Package Explorer.
# Create new 'Java Project'
# Get stendhal from CVS. (Connection type: pserver, User: anonymous, Password - leave blank, Host:arianne.cvs.sourceforge.net, Repository: /cvsroot/arianne)
# Make sure that the marauroa.ini (server.ini, for Stendhal version 0.63 or above) is in your stendhal project folder - '''only needed if you will be running the server'''.
# Right click on your project folder and select "Properties" in the context menu.
# Then select "Java Build Path" on the left side of the dialog box.
# Now add '''three source folders''' by clicking on the "Add Folder..." button
<pre>
source folder #1:
stendhal/src
Included:(All)
Excluded:(None)
Native library location: (None)


This guide describes how to setup a development environment in Eclipse for Stendhal.
source folder #2:
stendhal/tests
Included:(All)
Excluded:(None)
Native library location: (None)


== Get Java ==
default output folder: stendhal/bin
</pre>
8. On the "Libraries" tab: click on the "Add JARs" button and select all the files in stendhal/lib


* If you can play Stendhal, you already have Java and can skip this step.
Eclipse should be able to compile the source code now. There should be a little yellow sign (signalling warning messages) before your project folder but not red X (error messages). The package explorer should now display the "src" folder below the root folder with a different icon, the icon is like a small grid.
* If you do not have java installed, please download it https://java.com<br> (if you are on Linux, use your packet manager)

== Get Node.js ==

* https://nodejs.org (optional: for building & using web client)

== Get Eclipse==

* Go to https://www.eclipse.org/downloads/
* Download: "Eclipse IDE for Java Developers"
* Unzip the download and run Eclipse
* In Eclipse, close the "Welcome" window

You can click on the following images to see them in large.

<gallery>
File:Eclipse_00.png|On the first run of Eclipse, this "Welcome" window is shown. Please close it.
File:Eclipse_00a.png|Typical window layout with the Package Explorer on the left hand side and an empty area for editors in the middle
</gallery>
Note: If you installed Eclipse in Ubuntu via a package manager, also install: "eclipse-egit"

== New Project from Git ==

In Eclipse:

* Open menu "File -> Import
* In the dialog select: "Git -> Projects from Git" and click "Next".
* Select "Clone URI" and click "Next".
* Fill in the following information:
** '''URI''':
*** GitHub readonly: <code><nowiki>https://github.com/arianne/stendhal.git</nowiki></code><br>(if you have a github account, please go to https://github.com/arianne/stendhal and click on "Fork" to create you own copy of the repository and then use that in Eclipse instead)
*** GitHub read/write (SSH): <code><nowiki>git@github.com:arianne/stendhal.git</nowiki></code>
* The result of the fields are filled in automatically, click "Next"
* On the Branch selection page, keep everything selected and click "Next"
* Under "Destination" choose the directory where you want to download the source code and select "Next".
* Eclipse will now download Stendhal from git, this may take a while
* "Import existing projects" and select "Next"
* "Finish" import of project Stendhal

Click on the screenshots to enlarge them, if you need help with any of the steps:

<gallery>
Eclipse 01.png|Open File | Import
Eclipse 02.png|Import from Git
Eclipse 03.png|Clone URI
Eclipse 04.png|Fill in URI and watch the remaining fields to be filled automatically
Eclipse 05.png|Just click "next" on branch selection
Eclipse 06.png|Just click "next" on destination
Eclipse 07.png|Wait for the download to complete. This may take quite a while
Eclipse 08.png|Import existing project
Eclipse 09.png|Confirm import of project "Stendhal" by clicking finish
</gallery>


==Trouble Shooting==
==Trouble Shooting==
menu Windows | Preferences | Java | Installed JREs
* there should be at least one entry with a valid JAVA_HOME path (make it so so JDK compliance is 5.0 ?)


After completing the import wizard, Eclipse should look like the following screenshot:
If you happen to get this:
'' The method getLayerVector() is undefined for the type MapMapConverter.javastendhal/src/games/stendhal/toolsline 111''
* please right click your project folder again --> properties -> java build path.
* in the [source] tab there should only be stendhal/src, so remove stendhal/tiled/src
(This entry has higher priority than the tiled.jar in the libs folder but this code is highly outdated)
==To make it run the server in Debug mode==
* In the toolbar there is the "Debug" button, which looks like a little, green bug. There is a little black arrow on the right side of it.
* This will open a menu, please choose "Open Debug Dialog..."
* Then in the dialog select "Java Application" and click on the "new" icon in the top left corner.


[[File:Eclipse 10.png]]
<pre> Name: StendhalServer
Main class: marauroa.server.marauroad
[ ] include system libries when searching for the main class (default)
[ ] include inherited mains when searching for the main class (default)
[ ] Stop in main (default)


There is a project called "stendhal" listed in the Package Explorer view. There may be a tiny yellow triangle in front of the blue project icon. But if you see a red circle or a red exclamation mark, something went wrong. In this case there will be an error in the "Problems" view at the bottom.
on the [Arguments] tab:
Program arguments: -c server.ini -l (optional)
VM arguments: -Xmx128M


on the [Classpath] tab:
button "Advanced"
(*) add folder | OK
and select the project root folder | OK
</pre>


== Start StendhalServer ==

* In the toolbar there is the "Debug" button, which looks like a little, green bug. There is a little black arrow on the right side of it.
[[File:Eclipse_debug_configurations_menu.png]]
* This will open a menu, please choose "Debug configurations ..." ("Open Debug Dialog..." on older versions)
* Then in the dialog select "Java Application" and click on the "new" icon in the top left corner.
[[File:Eclipse_new_debug_configuration.png]]

Name: StendhalServer
Main class: games.stendhal.server.StendhalServer

* All other settings ("include system libries", "Stop in main", ... can be left at their default value.
* on the [Arguments] tab: VM arguments: -Xmx128M
* on the [Classpath] tab: click "UserEntries" - button "Advanced" - (*) add folder | OK - and select the "stendhal" project root folder | OK
* button [Debug]
* button [Debug]

And then the server should be started.
And then the server should be started.
'''Note: you may need to 'add external jars' and add your mysql jar from your ant build type server, if you have that already, or download from http://dev.mysql.com/downloads/connector/j/3.0.html''' (there are newer mysql available on the same site but I have 3.0 and it seems fine.)


NOTE: On newer Eclipse versions, the [Classpath Entries] are under Dependencies tab.
==To make the client run==

== Start Stendhal Client ==
# Open games.stendhal.client.update.Starter.java in the editor
# Open games.stendhal.client.update.Starter.java in the editor
# then again the small black arrow on the right side of the green bug.
# Then again the small black arrow on the right side of the green bug.
# Select "Debug Configurations" (or "Run Configurations...").
# Java Application -> new-icon, and it should be prefilled.
# Select Java Application and click the "New" button in upper-left corner.
# on the [Classpath] tab - button "Advanced" - (*) add folder | OK - and select the project root folder | OK
# On the [Classpath] tab select "User Entries" - button "Advanced" - (*) add folder | OK - and select the project root folder. | OK

== Making patches ==

If you have modified and tested the code and want to send us a patch, please see [[How To Create Patch For Stendhal]].


==Running JUnit Tests in Eclipse==
yay shiny new client, shiny server


This is an advanced topic. If you make changes to the Java code, it is a good idea to run the automatic test.
== External links ==


Setting up JUnit tests in Eclipse:
* [http://www.4shared.com/file/28480059/8f7a8e59/Stendhal_Eclipse_CVS_Checkout.html Stendhal Eclipse CVS checkout SWF visual guide]
# Click the arrow next to either the green "Run" or "Debug" button.
* [http://www.4shared.com/file/28482141/33719596/Stendhal_Eclipse_Source_Configuration.html Stendhal Eclipse source configuration SWF visual guide]
# Select "Run/Debug Configurations...".
* [http://www.4shared.com/file/28482432/e3f29000/Stendhal_Eclipse_Classpath_Configuration.html Stendhal Eclipse classpath configuration SWF visual guide]
# Select "JUnit" in the left column and press the "New launch configuration" at the top of left column.
# Give it a unique name, like "Stendhal Tests".
# Select "Run all tests in the selected project, package or source folder".
# OPTIONAL: (this step simply reduces the number of directories that Eclipse will search in for tests)
## Press "Search".
## Select "tests" folder under Stendhal root directory and press "OK".
# Under "Test runner" select "JUnit 4".
# Under "Classpath" tab select "User Entries" and press "Advanced" on the right panel.
#* NOTE: There should already be a folder under "User Entries" with a "(default classpath)" suffix. Do not delete this folder.
# Select "Add Folders" and press "OK".
# Select the Stendhal root folder and press "OK".
# Now click "Add JARs..." on the right panel.
# Under the Stendhal root folder select all the .jar files in libs and press OK.
# Now press "Apply" to save the configuration or "Run" to save and run it.