Objenesis
Objenesis is a library dedicated to bypass the constructor when creating an object. On any JVM there is.
You can find the website and user documentation at objenesis.org.
Developer information
Project status
Environment setup
I'm using:
- Maven 3.5.0
- IntelliJ Ultimate 2017.1.3 (thanks to JetBrains for the license) (it should also work with Eclipse)
To configure your local workspace:
- Import the Maven parent project to Eclipse or IntelliJ
- Import the Eclipse formatting file
objenesis-formatting.xml
(usable in Eclipse or IntelliJ)
To build with Maven
There are two different levels of build.
Build without any active profile
It is a basic compilation of the application.
mvn install
Full build
This build will create the source and javadoc jars and run findbugs.
mvn install -Pfull
To run special builds
Run the Android TCK
- Install the Android SDK
- Configure a device (real or simulated)
- Add an
ANDROID_HOME
to target the Android SDK - Add
$ANDROID_HOME/platform-tools
to your path - Activate the debug mode if it's a real device
mvn package -Pandroid
Run the benchmarks
mvn package -Pbenchmark
cd benchmark
./launch.sh
Generate the website
mvn package -Pwebsite
To update the versions
mvn versions:set -DnewVersion=X.Y -Pall
mvn versions:commit -Pall
if everything is ok,mvn versions:revert -Pall
otherwise
Configure to deploy to the Sonatype maven repository
- You will first need to add something like this to your settings.xml
<servers>
<server>
<id>sonatype-nexus-snapshots</id>
<username>sonatypeuser</username>
<password>sonatypepassword</password>
</server>
<server>
<id>sonatype-nexus-staging</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
http://www.sonatype.com/people/2010/01/how-to-generate-pgp-signatures-with-maven/
To check dependencies and plugins versions
mvn versions:display-dependency-updates versions:display-plugin-updates -Pall
To update the license
mvn validate license:format -Pall
To release
- Add the release notes in
website/site/content/notes.html
- Add these servers to your
settings.xml
<server>
<id>bintray</id>
<username>your-user-name</username>
<password>your-api-key</password>
</server>
<server>
<id>gpg.passphrase</id>
<passphrase>your-passphrase</passphrase>
</server>
- Set
gpg_passphrase
,bintray_api_key
andbintray_user
environment variables - Launch an Android device (virtual or physical)
- Launch
./deploy.sh version
- Answer the questions (normally, just acknowledge the proposed default)
- Follow the instructions
If something fails and you need to rollback a bit, the following commands might help:
mvn release:rollback -Pall
git tag -d $version
git push origin :refs/tags/$version
git reset --hard HEAD~2
Deploy the website
- Make sure the pom is at the version you want to release
- Launch
./deploy-website.sh