Table of Contents
- Prerequisites
- IntelliJ IDEA
- First time starting IDEA
- Import Repositories
- Building KnowWE
- Eclipse
- Installing Plugins
- Selecting the SVN implementation
- Setting up the Maven SVN integration
- Groovy Plug-in (optional)
- Preparing your workspace
- Eclipse settings
- Adding the SVN repositories
- Checking out the code
- Building KnowWE
- Create local preferences for JSPWiki
- Install KnowWE-Resources
- Install main projects
- Create a run configuration for building the wiki
- Updating the Tomcat context
- Starting KnowWE
- Troubleshooting
- Slow/unresponsive eclipse and increasing heap space for eclipse
- OutOfMemoryError while installing with Maven
- Compile errors after first build
- ClassCastException on startup
Prerequisites#
- Java Development Kit (JDK), choose the latest Version of Java 6 or 7.
- Apache Tomcat 6
Use the "Binary Distribution" - "Core" - .tar.gz or .zip. Do not use the installer. Do not use Tomcat 7
- IntelliJ IDEA 13
You might get a community key for the Ultimate Edition. Please ask via dev list.
IntelliJ IDEA#
First time starting IDEA#
When you first start IDEA you can choose which plugins to enable/disable. Just leave everything enabled to be on the safe side.After that choose "New Project" and then "Empty Project". Give it a name and hit "Ok".
Import Repositories#
Select "VCS -> Checkout from Version Control -> Subversion".Add following repositories by clicking on the "+"-Symbol: Read/write access (account necessary):
https://isci.informatik.uni-wuerzburg.de/svn/d3web-KnowWE
https://isci.informatik.uni-wuerzburg.de/svn/Research
To get an account, please contact info@d3web.de. Accounts on d3web.de are independent from the SVN accounts.
Anonymous access (read only):
https://isci.informatik.uni-wuerzburg.de/anonsvn/d3web-KnowWE
https://isci.informatik.uni-wuerzburg.de/anonsvn/Research
Select the three main projects (d3web, KnowWE, and Research) as well as KnowWE-App from inside the trunks of the three repositories. They are in the trunk/folders respectively. One by one, right click one the projects and select Check out and choose your Idea project folder. After that, select the following path $yourprojectname/$projectparent (usually the one in the middle). When IDEA has finished checking everything out, select "File -> Import module" and choose your project path. You get asked which module to import, choose "Maven" and hit "Next". In the next screen select "local" and "core-plugins" and hit "Next. Select your Java SDK and click "Finish".
Building KnowWE#
Select "Run - > Edit Configurations" and add "Tomcat Server -> local". Hit configure and choose your tomcat path. In den bottom pane click "+" and choose "Build Artifacts". Select "KnowWE-App:war exploded". Click on the "Deployment" tab and add "KnowWE-App:war exploded". Select as Application Context "/KnowWE" and click on "Ok". Build KnoWE by clicking on the green arrow right next to our new tomcat configuration.Eclipse#
To make Eclipse work with Subversion, Tomcat and Maven, you will need a few additional plug-ins.
Installing Plugins#
In the main menu, navigate to Help -> Install new software. In the Work with field, select Juno - http://download.eclipse.org/releases/juno. Wait for the list of available software to be retrieved, then select the following plug-ins to install:- Collaboration
- m2e - Maven Integration for Eclipse
- Subversive SVN Team Provider (Incubation)
Click Next, accept the licenses, and finish the installation. Restart Eclipse when you are asked to.
Selecting the SVN implementation#
After restarting Eclipse, click on Window -> Open Perspective -> SVN Repository Exploring. A dialog window will be opened asking you to select an SVN connector implementation. Select SVNKit 1.3.7 (or the latest available SVNKit version of the 1.3 branch, not 1.7 ) and finish the installation wizard.
You need to accept installing unsigned software, and restart Eclipse again when asked.
Setting up the Maven SVN integration#
Please make sure that you have installed SVNKit 1.3.7 (or the latest available SVNKit version of the 1.3 branch, not 1.7 ) at this point
Again, go to Help -> Install new software. Click the Add.. button in the top right corner. In the dialog window, enter the following URL into the Location field:
Hit OK, then select the following software to be installed:
- Subversive Integration Plug-in's
- Subversive Integration for the M2Eclipse Project
Hit OK, then select the following software to be installed:
- Maven SCM Handler for Subversive
- Maven SCM Handler for Subversive
Like before, finish the wizard and this time close Eclipse (either click Not now and exit Eclipse, or let it restart and exit from there).
Sysdeo Tomcat Plug-in\n
The Sysdeo Tomcat Plug-in allows you to start Tomcat directly from within Eclipse. You can find it at http://www.eclipsetotale.com/tomcatPlugin.html.
To perform the installation, download the .zip file provided at the author's homepage and unpack it into the plugins/ folder inside your Eclipse installation.
The KnowWE-App project is preconfigured for use with this plug-in.
Groovy Plug-in (optional)#
You can skip this plugin if you do not use the plug-ins using Groovy (e.g., Refactoring, WISEC, CI,...).
To install the plugin, you need to add a new Software Update Site in Eclipse:
In the main menu, navigate to Help -> Install new software. In the dialog, click Add... and enter the following URL into the Location text box:
For Eclipse 3.6
For Eclipse 3.5
Then, you just have to select and install the "Groovy-Eclipse Feature" which you can find under
Currently, Groovy is only needed for the Project "KnowWE-Plugin-Refactoring". It is highly recommended to install this plugin because otherwise, Eclipse will show errors.
Alternatively, close the project. This is not recommended, because if you change something on the core projects, you will forget eventual changes which concern also the refactoring plugin.
In either case, Maven is able to compile the refactoring plugin and you also will be able to run its maven tests, with or without having installed the Groovy-Plugin for Eclipse.
Preparing your workspace#
Eclipse settings#
Start arguments:
Maven needs Eclipse to run in a JDK, not in a JRE. Start Eclipse with the -vm parameter, for example:
"C:\Program Files\eclipse\eclipse.exe" -vm "C:\Program Files\Java\jdk1.6.0_17\bin\javaw.exe"
You can find the following Eclipse settings in the main menu at Window -> Preferences.
Encoding: General -> Workspace -> Text file encoding: "UTF-8"
Disable certain compiler errors: Java -> Compiler -> Errors/Warnings -> Deprecated and restricted API -> Forbidden reference: "Warning"
Comment format:\n
Get the codetemplates.xml attached to this page and import it: Java -> Code Style -> Code Templates
Enable: Automatically add comments for new methods and types
(If your login name is not meaningful, you have to change the comment template for Type, as your login name is used as author name)
Code format settings:\n Get the code_conventions.xml attached to this page and import it: Java -> Code Style -> Formatter
To enable automatic formatting, certain actions have to be carried out on saving: Java -> Editor -> Save Actions
The screenshot on the right shows the actions, that have to be activated.
Tomcat plug-in: \n
Tomcat -> Tomcat Version: Select your Tomcat version here
Tomcat -> Tomcat Home: Choose the directory where you unpacked the Tomcat zip
Tomcat -> Context declaration mode: "Context files" (do not select server.xml!)
Tomcat -> JVM Settings -> JRE: check that the correct JRE is selected
optional: Set larger heap size for tomcat:
Window -> Preferences -> Tomcat -> JVM Settings -> add to JVM parameters -> set for example: -Xms1g -Xmx1g
Read for your exact personal settings: http://javahowto.blogspot.com/2006/06/6-common-errors-in-setting-java-heap.html
recommended: Set Tomcat to use UTF-8 (necessary for special characters like german umlauts in page names for example):
You have to edit server.xml of Tomcat (is in the conf-directory of Tomcat). Please add to
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true"/>
the term URIEncoding="UTF-8".
It should look like that:
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" debug="0" connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
Further information: http://www.jspwiki.org/wiki/BugProblemsWithGermanUmlaute
Adding the SVN repositories#
Window -> Open perspective -> Other… -> SVN Repository Exploring.Repeat the following step for each of the listed repository URIs:
In the SVN Repositories view, perform a right click, select New -> Repository Location...
Read/write access (account necessary):
https://isci.informatik.uni-wuerzburg.de/svn/d3web-KnowWE
https://isci.informatik.uni-wuerzburg.de/svn/Research
To get an account, please contact info@d3web.de. Accounts on d3web.de are independent from the SVN accounts.
Anonymous access (read only):
https://isci.informatik.uni-wuerzburg.de/anonsvn/d3web-KnowWE
https://isci.informatik.uni-wuerzburg.de/anonsvn/Research
Checking out the code#
Please make sure that you have installed SVNKit 1.3.7 (or the latest available SVNKit version of the 1.3 branch, not 1.7) at this point. If you have checked out the code using SVNKit 1.7, you need to check it out again using SVNKit 1.3
Select the three main projects (d3web, KnowWE, and Research) as well as KnowWE-App from inside the trunks of the three repositories. They are in the trunk/folders respectively. One by one, right click one the projects and select Check out as Maven Project… and click Finish.
After checking out and importing the maven projects, Eclipse may make some changes to the .classpath-files of the projects, which should be reverted. Switch back to the Java perspective, click the three main projects (d3web, KnowWE, and Research) and select Team and then Revert... .
Building KnowWE#
Create local preferences for JSPWiki#
Copy KnowWE-App/src/resources/local/WEB-INF/jspwiki.properties.default to jspwiki.properties in the same directory. Do not rename it in Eclipse.In jspwiki.properties, edit the settings for your local environment. The three most important settings are at the top.
Install KnowWE-Resources#
Right click 'KnowWE-Resources' project -> Run as -> Maven installInstall main projects#
One by one, right click the main projects d3web, KnowWE, Research and select Run As and then "Maven install". Wait for the for the current one to finish before you install on the next one.
Create a run configuration for building the wiki#
Right click on "KnowWE-App", select Run as -> Maven build….A dialog will show. Set the following settings:
Goals: clean install
Profiles: local core-plugins
Enable checkbox "Resolve Workspace artifacts"
Updating the Tomcat context#
Right click on "KnowWE-App" -> Tomcat project -> Refresh context in TomcatStarting KnowWE#
You can now start Tomcat using the Start tomcat toolbar button or menu entry. Open the following URI in your browser:Troubleshooting#
Slow/unresponsive eclipse and increasing heap space for eclipse#
If you are experiencing a really slow reaction and work speed of eclipse, you can try increasing the heap space of eclipse. This is especially relevant, if you have checked out the complete d3web, KnowWE and Apps projects or use Java 7 for eclipse, which also seems to use more memory. Go to the eclipse.ini in your eclipse installation and add/adapt the lines for the vm arguments. It could look something like this:
-vmargs -Xms512m -Xmx2g
The line breaks are important! -Xmx2g says, that eclipse can use up to 2GB of RAM. These 2 GB are recommended, but if you do not have that much to spare, something around 1500m is also ok.
OutOfMemoryError while installing with Maven#
Since Java 7, building parent projects like Research may cause OutOfMemoryErrors:
[ERROR] Consult the following stack trace for details. [ERROR] java.lang.OutOfMemoryError: PermGen space [ERROR] at java.lang.ClassLoader.defineClass1(Native Method) [ERROR] at java.lang.ClassLoader.defineClass(ClassLoader.java:791) ...
To solve this, you have to add some arguments for the Java Virtual Maschine in your run configuration.
In the run configuration explorer (available for example via right click on a project an then "Run As" and "Run configurations...") select the run configuration which produces the error and select the tab "JRE". In the text area "VM arguments" add the following statements:
-Xmx2g -XX:MaxPermSize=512m
Compile errors after first build#
Sometimes you get errors like:Cannot nest output folder 'd3web-Distributed/target/classes' inside output folder 'd3web-Distributed'
If this happens, close and open all affected projects. Alternatively, you have to do the following steps:
- Remove the affected projects from the workspace without deleting them, by selecting 'Delete' from the context menu and unchecking the checkbox.
- Import the project back to the workspace:
- Menu: File->Import...
- General: Existing projects into workspace
- As root directory select the project directory itself, e.g. <workspacedir>\d3web-KnowWE\d3web-distributed.
- Select the project in the list.
- Click 'Finish'.
- Repeat step 2 for every project that was affected.
ClassCastException on startup#
You might encounter the following exception:java.lang.ClassCastException: org.apache.catalina.util.DefaultAnnotationProcessor cannot be cast to org.apache.AnnotationProcessorWorkaround: In the folder where you unpacked Tomcat (e.g. /usr/local/apache-tomcat-6.0.20/) you can find a directory called conf. In there is context.xml. Add follwing statement into the <Context> element: