forked from hex007/microemu
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathread-me-developer.txt
122 lines (73 loc) · 4.64 KB
/
read-me-developer.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
@version $Revision$ ($Author$) $Date$
* Build
We are using maven2 to build project
To build project you need this environment variables:
JAVA_HOME, SWT_HOME (to build swt module)
No longer required: we are using proguard for preverification
WTK_HOME to compile and test MIDlets.
PATH variable should contain %JAVA_HOME%\bin for WTK preverify to work.
Also You may need to set MAVEN_OPTS=-Xmx256M if you are getting java.lang.OutOfMemoryError during build
To create Eclipse projects run:
mvn eclipse:clean eclipse:eclipse -DdownloadSources=true
To run build without tests:
mvn -Dmaven.test.skip=true
To build distribution assembly e.g. microemulator-2.X.X.zip:
mvn -DperformRelease=true
distribution package would be created in microemulator\target\microemulator-2.X.X.zip
Module microemu-javase-swt is not built by default. To activate its build add property buildByMicroEmulatorTeam to settings.xml
Running GCF Tests behind firewall
Create file $home\.microemulator\tests.properties
The file should contain host name to connect to, e.g.:
gcf.no-proxy-test-host=localhost
We are using echo test server. Sources here: https://pyx4j.com/viewvc/pyx4me/pyx4me-host/pyx4me-test-server/
* plugin.jar
We use ${java.home}/lib/plugin.jar during build of applet
There are no plugin.jar on Linux 64-bit Java; Just copy it from 32-bit java installation.
* Building official Release by the MicroEmulator team.
* To buils the site you need to build skin once: cd microemu-extensions/microemu-site-skin; mvn install
* Test build locally
mvn clean deploy site-deploy -P release -DperformRelease=true -Dlabel=2.0.3.111
* Remove all -SNAPSHOT from pom.xml
* Remove/comment SNAPSHOT <pluginRepositories> used in poms if any.
* Update src/changes.xml
* Comment out sections marked <!--4release--> and <!--4snapshot--> in src/site/site.xml
* SVN commit
* On build server (CruiseControl) https://pyx4j.com/cruisecontrol/ start "me2-release"
It will execute:
mvn -o clean --fail-never -P release
mvn -o scm:update -P release
mvn -o clean deploy site-deploy -P release -DperformRelease=true
* repository "pyx4j.com-file-release" (http://pyx4j.com/maven2-release/) on build server will sync with http://repo1.maven.org/maven2
It's a good idea to ask Vlad to stop rsync before making build, just in case we need to rebuild the Release.
* Upload the context of /home/apache/microemu (http://pyx4j.com/snapshot/microemu-release) to http://microemu.org/
TODO we may need to create a site.zip of the site during build, so Anybody can make a Release build and upload it to microemu.org.
* Upload the distribution jars microemulator-X.X.X-sources.zip and microemulator-X.X.X.zip to http://code.google.com/p/microemu/
Files location: http://pyx4j.com/snapshot/microemu-release/microemulator/download/
* Create Tag in SVN
* Update version to (x+1)-SNAPSHOT
* Update src/site/site.xml reverse changes for <!--4release--> and <!--4snapshot-->
* cruisecontrol
"me2" Every 1 hour:
clean --fail-never -P build|scm:update -P build|clean install -P build
"me2-nightly" 3AM EST
clean --fail-never -P build|scm:update -P build|clean deploy site-deploy -P build
* error classpath configuration error, Wrong Injected class detected. microemu-injected module should be after microemu-javase in eclipse
This is the problem that order of dependancies in maven is undefined.
To solve: In eclipse edit project microemu-javase-swing move microemu-injected down.
In fact it should not even be there as project (bug in maven-eclipse plugin), only jar microemu-injected-2.0.1-SNAPSHOT-inject.jar is required!
The best option to remove this dependacncy from eclipse project.
* Building applet
This describe procedure for building applet.
We run proguard 3 times with deferent options
on microemu-cldc and microemu-midp we need to preserve all API declarations
on microemu-javase+microemu-javase-swing assembly we just need to preserve main applet class.
* Building Web Start
We are using signed Web Start.
The microemu-webstart module is created to be build by primary ME2 developers only because it involves signing jars with our keys.
The module can still be used by other as reference. Please see microemu-webstart\key.txt
microemu-webstart module is not part of regular build
To build webstart module use
mvn -P webstart
When building all application.
This is because some users may get ME2 SVN tree and try to compile.
The microemu-webstart will fail for them.