Lexical Tools - build Processes
This pages describes the build, development and test procedures on Lexical Tools annual releases:
| Command | setup | Operation results |
|---|---|---|
shell> ant clean | build.xml |
|
shell> ant | build.xml |
|
shell> ant dist | build.xml |
|
shell> ant release | build.xml |
|
shell> packLvgFull ${YEAR} | use ./lib/lvg${YEAR}dist.jar | create ./lvg${year}.tgz |
shell> packLvgLite ${YEAR} | use ./lib/lvg${YEAR}dist.jar | create ./lvg${year}lite.tgz |
| Test Type | setup | Operation results |
|---|---|---|
| unit test | install ./lvg${YEAR}.tgz to ${PROJECT} | check results on all flows and options |
| lite test | unzip ./lib/lvg${YEAR}Lite.tgz | Check all scripts |
| groupId | artifactId | version | Notes |
|---|---|---|---|
| gov.nih.nlm | lvg |
| SNAPSHOT is used for development. |
| com.ibm.icu | icu4j | 73.2 | Unicode package |
| org.hsqldb | hsqldb | 2.7.2 | HsqlDb database (use jdk8) |
| junit | junit | 4.13.2 | for unit tests |
| org.apache.maven.plugins | maven-compiler-plugin | 3.11.0 | maven compiler |
| org.apache.maven.plugins | maven-jar-plugin | 3.3.0 | Maven manifest |
| Profile | |||
| org.apache.maven.plugins | maven-assembly-plugin | 3.6.0 | mvn package -Psinglegenerates ./target/lvg-${YEAR}.0-jar-with-depednencies.jar |
| org.apache.maven.plugins | maven-resources-plugin | 3.3.1 | copy resource files |
| org.apache.maven.plugins | maven-shade-plugin | 3.5.1 |
|
| org.apache.maven.plugins | maven-javadoc-plugin | 3.6.0 | mvn package -P javadocgenerate ./target/apidocs/* (not used in the release) |
| org.apache.maven.plugins | maven-source-plugin | 3.3.0 | mvn package -P sourcegenerates lvg-{YEAR}.0-sources.jar (include source) |
| Command | setup | Operation results |
|---|---|---|
shell> mvn clean | pom.xml |
|
shell> mvn validate | pom.xml |
|
shell> mvn compile | pom.xml |
|
shell> mvn test | pom.xml ./test/java/*.java |
|
shell> mvn package | pom.xml |
|
shell> mvn install | pom.xml |
|
shell> mvn deploy | pom.xml |
|
| Command | setup | Operation results |
|---|---|---|
shell> mvn deploy -Pshade | pom.xml |
|
shell> packLvgFull ${YEAR} TRUE | use ./target/lvg-${YEAR}.0-shaded.jar to replace ./lib/lvg${YEAR}dist.jar |
|
shell> packLvgLite ${YEAR} TRUE | use ./target/lvg-${YEAR}.0-shaded.jar to replace ./lib/lvg${YEAR}dist.jar |
|
| Test Type | setup | Operation results |
|---|---|---|
| unit test | install lvg to ${PROJECT} | check results on all flows and options |
| lite test | unzip lvgLite | Check all scripts |
| variable | operations |
|---|---|
| login | login to docker |
| build | use maven to build and deploy lvg artifacts to LHC-Nexus |
| packLite | pack lite (min.) Lvg to ./lvgLite${YEAR}.tgz |
| packFull | pack full Lvg to ./lvg${YEAR}.tgz |
| Variable name | function | Notes |
|---|---|---|
| ${VERSION} | lvg version | updated in the Makefile |
| ${LVG_PACK} | pack lvg${YEAR}lite.tgz and lvg${YEAR}.tgz |
|
| ${LVG_UPLOAD} | upload to Nexus |
|
| ${LVG_MVN_SNAPSHOT} | snapshot build |
|
| ${LVG_MVN_JAR} | Use mvn to build |
|
| Variable name | Dev - Ant | Maven/PreProcess | Production |
|---|---|---|---|
| ${YEAR} | year | year | year |
| ${LVG_PACK} | TRUE | TRUE | TRUE |
| ${LVG_UPLOAD} | FALSE | FALSE | TRUE |
| ${LVG_MVN_SNAPSHOT} | TRUE | TRUE | FALSE |
| ${LVG_MVN_JAR} | FALSE | TRUE | TRUE |
| command | desciption | notes |
|---|---|---|
git branch | check which branch is on | |
git checkout develop | Use "develop" for development | development uses snapshot build |
| save software changes to Git remote | |
git tag | show all tags | tag is used to start the Ci-Cd build |
git tag -a v.${YEAR}.0 -m "msg" | tag the current version | |
git push origin tagName | push a tag to remote origin | A new tag will start the Ci-Cd pipleline |
git push origin -- tags | pushshow all tags to remote origin |
| Test Type | setup | Operation results |
|---|---|---|
| unit test | install lvg to ${PROJECT} | check results on all flows and options |
| lite test | unzip lvgLite | Check all scripts |
| GUI Lexical Tool test | unzip lvgLite | Check all scripts |
| Perfromance test | unzip lvgLite | Check all scripts |
| Other tests | unzip lvgLite | Check all scripts |
| Git command | Descriptions | Notes |
|---|---|---|
git checkout master | switch to master | |
git merge develop | merge changes in dev to master | |
git tag | show all tags | |
git tag -a v.${YEAR}.01 -m "msg" | tag the current version | tag is used to save the official release (not to start a Ci-Cd pipeline). |