forked from rssowl/RSSOwl
-
Notifications
You must be signed in to change notification settings - Fork 22
How To Build
Xyrio edited this page Feb 16, 2019
·
15 revisions
- Overview
- Get Java
- Get RSSOwlnix Source
- Note for MacOS
- Console (very easy)
- Eclipse
- RSSOwlnix Project Structure
- Build Addons
- Build Translations
for the console build you can just download maven and compile from console and use whatever ide you like.
or you can use eclipse to run it directly from eclipse and also build using eclipse PDE system (graphical) but also using maven in eclipse which is already integrated as a plugin in eclipse-ee.
we skip running all tests for now as some fail because they need to be improved to work without external websites (which changed) and a failure would stop the build process.
- download latest jdk 8 like from here: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
- download source code from https://github.com/Xyrio/RSSOwlnix using git (zip will not work when using maven as the gitrepository is used by maven tycho to create the qualifier date)
- if you intend to use eclipse make sure you have another dirtyable parent folder for the eclipse workspace like:
C:\rssowlnixprj\RSSOwlnix\README.md
- note: for macos binaries you might need to remove extended attributes: xattr -c RSSOwlnix.app ( https://github.com/Xyrio/RSSOwlnix/issues/4 )
build from console using maven then run standalone
- download maven binaries: https://maven.apache.org/download.cgi
- add maven's bin folder to your path or use absolute path to mvn
- you must set JAVA_HOME environment variable to point to your JDK root folder like
C:\Program Files\Java\jdk1.8.0_161
- open console in RSSOwlnix root folder
- compile with:
mvn clean verify -Dmaven.test.skip=true
- you can build only for certain operating systems if you edit
releng\configuration\pom.xml
environments
xml tag - binaries can be found inside
releng\product\target\products
- p2 repository for updating is at
releng\product\target\repsitory
in eclipse you have 2 ways to build, using maven or with eclipse's PDE build system.
- download latest Eclipse IDE for Java EE Developers: https://www.eclipse.org/downloads/eclipse-packages/
- start eclipse and use
C:\rssowlnixprj\
as your workspace folder.
menu: Window | Preferences | Java | Installed JREs
- remove the entry (jre...)
- click add...
- Standard VM
- set JRE home to like:
C:\Program Files\Java\jdk1.8.0_161
- check jdk
- Apply and Close
- menu:
File | Import... | General | Existing Project Into Workspace...
- directory:
C:\rssowlnixprj\RSSOwlnix\
- check Search for nested projects
- finish with all checked
- first time setup: in file tree on the left open RSSOwlnix folder and right click pom.xml then
Run As | Maven build...
- Goals:
clean verify -Dmaven.test.skip=true
- Apply then Run
- to build again click the downward triangle right of the biggest green play icon then RSSOwlnix.
- you can build only for certain operating systems if you edit
releng\configuration\pom.xml
environments
xml tag - binaries can be found inside
releng\product\target\products
- p2 repository is at
releng\product\target\repsitory
- open
releng\target_platform\target_platform.target
(every time you show the target_platform like this it will do a refresh of the view, showing you the selected dependencies) - at top right, click to set as active target platform (only visible if not already active platform)
- click reload target platform (or changes to the dependencies will not be available sometimes. they are cached somewhere)
- close the target platform window
- open
releng\product_manual_export\rssowlnix.product
- at top right click on the icon for
Export an Eclipse Product
- Root directory: RSSOwlnix
- Synchronize before exporting: off
- Directory:
- Generate p2 repository: on (repository cannot be used to update RSSOwlnix itself when exported like this but is needed for RSSOwlnix to be built correctly)
- Export for multiple platforms: check this for an aditional step (Next button enables) ...
- Allow for binary cycles in target platform: on
- click Finish (or Next if you enabled export for multiple platforms)
- note: a exported version like this is not updateable, you have to export again. addons and translations can be installed.
note: p2 updating does not work when started like this.
- menu:
Window | Show Window | Other | General | Problems
open- you can ignore the following kind of errors when launching:
- ignorable errors: if they are in
org.rssowl.lib.httpclient.p2
(Resource column) - ignorable error:
The value for attribute 'name' is not externalized.
in org.rssowl.ui\plugin.xml
- ignorable errors: if they are in
- you can ignore the following kind of errors when launching:
- right click
org.rssowl.ui\Launch RSSOwl.launch
thenRun As | Launch RSSOwl
-
Errors Exist in Required Project
if only ignorable errors click Proceed -
Do you really want to clear log file?
Clear unless you want to keep error messages from a previous launch.
- Cannot locate JRE definition:
jdk1.8.0_151
. Launch aborted. (or some other version)- fast way: double click
Launch RSSOwl.launch
to open it as text. search for the wrong JRE definition and replace it with the right one (that you configured before, see Configuring Eclipse) likejdk1.8.0_161
- slow way: menu:
Run | Run Configuration...
then selectEclipse Application | Launch RSSOwl
under tabMain
forRuntime JRE
select the JDK you want to use.
- fast way: double click
- menu:
Help | Install New Software...
- choose the url that is for updates like:
http://download.eclipse.org/eclipse/updates/4.7
- install plugin in eclipse
Eclipse Test Framework
to be able to run tests direclty from eclipse
- close any running RSSOwl/RSSOwlnix instance or some tests may not work.
- right click the test file
org.rssowl.core.tests\Launch RSSOwl Tests.launch
thenRun As | Launch RSSOwl Tests
- under tab
Main
have the following set- Run an application: [No Application] - Headless Mode
- under tab
- note: for some tests to run you may have to close any running RSSOwl or RSSOwlnix instance, event outside of eclipse.
- find the test you want to run in
org.rssowl.core.tests\src
- right click the test file:
Run As | JUnit Plug-in Test
- feature: eclipse feature project, used to collect everything into one, makes updating easier. project doesnt contain code.
- plugin: eclipse plugins are the projects with code or ressources.
- org.rssowl.lib.* are plugin projects to make normal jars usable within eclipse rcp (osgi compatible).
Folder | Description |
---|---|
bundles | eclipse plugins (maven) |
features | eclipse features (maven) |
org.rssowl.core | core code with some dependencies on eclipse |
org.rssowl.core.tests | core tests with dependencies on eclipse |
org.rssowl.docs | old docs, plans and overviews. some may still be useful. |
org.rssowl.feature | collects stuff from this project |
org.rssowl.feature.dependencies | collects external dependencies |
org.rssowl.feature.dependencies.updater | collects external dependencies for the updater |
org.rssowl.feature.eclipse | collects stuff for installing as a plugin into eclipse official program (not tried yet after 2.2.1) |
org.rssowl.feature.tests | automated junit tests |
org.rssowl.lib.db4o | lib for the object database named db4o |
org.rssowl.lib.httpclient | lib for http* connections |
org.rssowl.lib.httpclient.p2 | helper project to easyly download httpclient jars from maven repository and make them osgi compatible. they are then manually moved over to the other httpclient project. |
org.rssowl.lib.jdom | lib for understanding xml files |
org.rssowl.lib.lucene | lib for searching |
org.rssowl.ui | gui code for the program |
releng | release engeneering (maven) |
releng/configuration | configuration, has list of target operating systems to build for (maven) |
releng/product | product file (maven) |
releng/product_manual_export | product file for manual exporting (eclipse way) |
releng/target_platform | defines which external dependencies to download (eclipse way) (also used by maven tycho) |
releng/update | generates a repository for program updates (maven) |
RSSOwlnix | root (maven) |
- Get Java
- Eclipse Preparations
- Eclipse Configuration
- download source from https://github.com/Xyrio/RSSOwlnix-plugins-addons
- put into eclipse workspace:
C:\rssowlnixprj\RSSOwlnix-plugins-addons\README.md
- Adding source code to Eclipse
- open a feature project and double click feature.xml to open
- click the icon at top right for "Export a deployable feature"
- check one or more features
- Directory: the output directory for the p2 repository
- tab Options:
- on = Package as individual JAR archives
- on = Generate p2 repository
- on = Allow for binary cycles in target platform
- rest off
- you can use a file system urls like:
file:/C:\folder
to update - https://github.com/Xyrio/RSSOwlnix/wiki/How-To-Install-Addons-or-Translations
(Maven Tycho)
- no configuration created yet.
- Get Java
- Eclipse Preparations
- Eclipse Configuration
- download source from https://github.com/Xyrio/RSSOwlnix-plugins-translation
- put into eclipse workspace:
C:\rssowlnixprj\RSSOwlnix-plugins-translation\README.md
- Adding source code to Eclipse
- open a feature project and double click feature.xml to open
- click the icon at top right for "Export a deployable feature"
- check one or more features
- Directory: the output directory for the p2 repository
- tab Options:
- on = Package as individual JAR archives
- on = Generate p2 repository
- on = Allow for binary cycles in target platform
- rest off
- you can use a file system urls like:
file:/C:\folder
to update - https://github.com/Xyrio/RSSOwlnix/wiki/How-To-Install-Addons-or-Translations
(Maven Tycho)
- no configuration created yet.