Challenge Overview
Currently, the build process for online review is messy, it needs to use the source code of all related components (see https://github.com/topcoder-platform/tc-online-review/tree/dev/components), and it will compile all the classes in online review and components, them package directly into the final review.war file.
This makes the build process messy and time comsuming.
1. Most components are not changed from release to release, we can directly use the jars.
2. The version depedency are not clearly maintained between components.
For this challenge, we'd like to standarize the build and publish process for components.
1. Take out components and lib directory from tc-online-review repo into a separate directory (repo)
2. Work out a way that we can build and package the component jar file and deploy the lib directory.
Basically, there are already ant targets in the build.xml of each component, like deploy-lib, dist_tcs, else (please figure out the right way)
2.1 Create a topcoder_global.properties file under components directory, it will be used by each component's build.xml, the content should be similar as following, change if you needed.
#execution commands/settings
debug=off
verbose=no
#standard directory definitions
libdir=../../lib
tcs_libdir=../../lib/tcs
ext_libdir=../../lib/third_party
hercules_libdir=../../lib/hercules
#client directory definitions (optional)
hermes_libdir=c:/code/lib/hermes-java
cronos_libdir=c:/code/lib/cronos-java
#common build script dependencies
#junit.jar=${ext_libdir}/junit/3.8.2/junit.jar
junit.jar=${ext_libdir}/junit/4.6/junit-4.6.jar
#cobertura.dir=${ext_libdir}/cobertura/1.9.4
cobertura.dir=${ext_libdir}/cobertura/1.8
java_1_3_bootclasspath=C:/Software/Java/jdk1.3.1/jre/lib/rt.jar
java_1_4_bootclasspath=C:/Software/Java/j2sdk1.4.2/jre/lib/rt.jar
java_1_5_bootclasspath=C:/Software/Java/jdk1.5.0/jre/lib/rt.jar
java_1_6_bootclasspath=C:/Software/Java/jdk1.6.0_18/jre/lib/rt.jar
2.2 Figure and fix the dependencies between components, please check build.xml and build-dependencies.xml in each component's directory, and make each component can be built and pakaged, using the published component jars in lib directory
the versions used in the build.xml and build-depenncies.xml probably incorrect, you should figure out and fix properly.
2.3 Create a shell script, which can be easily used to build the compoents and deploy into the lib directory one by one.
- Verification Steps.
This makes the build process messy and time comsuming.
1. Most components are not changed from release to release, we can directly use the jars.
2. The version depedency are not clearly maintained between components.
For this challenge, we'd like to standarize the build and publish process for components.
1. Take out components and lib directory from tc-online-review repo into a separate directory (repo)
2. Work out a way that we can build and package the component jar file and deploy the lib directory.
Basically, there are already ant targets in the build.xml of each component, like deploy-lib, dist_tcs, else (please figure out the right way)
2.1 Create a topcoder_global.properties file under components directory, it will be used by each component's build.xml, the content should be similar as following, change if you needed.
#execution commands/settings
debug=off
verbose=no
#standard directory definitions
libdir=../../lib
tcs_libdir=../../lib/tcs
ext_libdir=../../lib/third_party
hercules_libdir=../../lib/hercules
#client directory definitions (optional)
hermes_libdir=c:/code/lib/hermes-java
cronos_libdir=c:/code/lib/cronos-java
#common build script dependencies
#junit.jar=${ext_libdir}/junit/3.8.2/junit.jar
junit.jar=${ext_libdir}/junit/4.6/junit-4.6.jar
#cobertura.dir=${ext_libdir}/cobertura/1.9.4
cobertura.dir=${ext_libdir}/cobertura/1.8
java_1_3_bootclasspath=C:/Software/Java/jdk1.3.1/jre/lib/rt.jar
java_1_4_bootclasspath=C:/Software/Java/j2sdk1.4.2/jre/lib/rt.jar
java_1_5_bootclasspath=C:/Software/Java/jdk1.5.0/jre/lib/rt.jar
java_1_6_bootclasspath=C:/Software/Java/jdk1.6.0_18/jre/lib/rt.jar
2.2 Figure and fix the dependencies between components, please check build.xml and build-dependencies.xml in each component's directory, and make each component can be built and pakaged, using the published component jars in lib directory
the versions used in the build.xml and build-depenncies.xml probably incorrect, you should figure out and fix properly.
2.3 Create a shell script, which can be easily used to build the compoents and deploy into the lib directory one by one.
Final Submission Guidelines
- Changes For components directory (Since lib directory is mainly holding for published jars, we can easily generate from components directory)- Verification Steps.