EasyMock is a Java library that provides an easy way to use Mock Objects in unit testing.
You can find the website and user documentation at http://easymock.org.
I'm using:
- IntelliJ 2022.2.2 Ultimate (thanks to JetBrains for the license)
- Maven 3.8.5
You can also use Eclipse. I tried
- Eclipse 2020.12 (but there was a weird compilation issue with ASM)
To configure your local workspace:
- Import the Maven parent project to Eclipse or IntelliJ
- Import the Eclipse formatting file
EasyMock-formatter.xml
(usable in Eclipse or IntelliJ)
There are three different levels of build.
It is a basic compilation of the application.
mvn install
This build will check code coverage using Jacoco, run spotbugs and validate that the license headers are correctly set.
mvn install -PfullBuild
This is the build to launch to deploy to the surefire repository. It assembles the application and add the gpg checksum. You will usually launch it on top of the full build.
The command line will ask you to give the passphrase for the gpg private key.
mvn install -PdeployBuild
- Install m2e
- Import the EasyMock Maven parent project to your Eclipse workspace
- Import the EasyMock Maven parent project as a New IntelliJ project
mvn versions:set -DnewVersion=X.Y -Pall
mvn versions:commit -Pall
if everything is ok,mvn versions:revert -Pall
otherwise
- You will first need to add something like this to your settings.xml
<servers>
<server>
<id>ossrh</id>
<username>sonatypeuser</username>
<password>sonatypepassword</password>
</server>
</servers>
- Then follow the instructions from the site below to create your key to sign the deployed items
- You will to give enough memory to maven with
export MAVEN_OPTS=-Xmx512m
(or setting it as environment variable) - Then type
mvn site
mvn versions:display-dependency-updates versions:display-plugin-updates -Pall
mvn dependency:resolve -Dclassifier=sources
mvn validate license:format -Pall
mvn wrapper:wrapper
mvn clean org.jacoco:jacoco-maven-plugin:prepare-agent test sonar:sonar
- Install the Android SDK
- Configure a device (real or simulated)
- Add an
ANDROID_HOME
to target the Android SDK - Possibly put these in your path:
$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/emulator
- To launch an emulator from command line
- To list the configured device:
emulator -list-avds
- To launch:
emulator -avd Nexus_5X_API_28
- To list the configured device:
- Activate the debug mode if it's a real device
mvn install -Pandroid
- Make sure the poms are on the snapshot of the version you want to deploy
- Launch and Android emulator or connect an Android phone
- Make sure
jq
is installed. If not, install it with your favorite package manager (brew install jq
,choco install jq
,apt-get install jq
,yum install jq
, etc.). - If gpg gives an
Inappropriate ioctl for device
error, enter this in your shell:export GPG_TTY=$(tty)
- Add a little speech on the features in "ReleaseNotes.md" (remove the Change Log part, which will be regenerated automatically)
- Set the gpg_passphrase as environment variables
- Launch
./deploy-easymock.sh (major|minor|patch)
where the parameter tells which version number should be incremented at the end - During the deployment, you will be asked to do different things. Do them
- Announce to gitter, tweet and blog ;-)
In case of a failure during the build before the deployment, do mvn versions:commit -Pall
and start over.
If something was staged in Maven Central, you can drop the staging repository with mvn nexus-staging:drop
.
- In local:
- Go to the EasyMock root directory
- Make sure the website directory is clean
./deploy-website.sh
In local:
mvn versions:set -DnewVersion=X.Z-SNAPSHOT -Pall
mvn versions:commit -Pall
- Create next version in Jira (http://jira.codehaus.org/plugins/servlet/project-config/EASYMOCK/versions)