Use `./gradlew run` to build and run Bitsquare directly.
Use `./gradlew shadowJar` to generate a portable, executable jar.
Use `./gradlew packageNative` to generate an installer binary specific
to the platform you are running on.
In the case of Windows, it is necessary to copy the two .dll files in
the `package/` directory to the directory where Bitsquare.exe is
ultimately installed.
Resolves#243
This commit applies the 'eclipse' Gradle plugin, such that .classpath,
.project and .settings files can be generated using:
./gradlew eclipse
Once the above is complete, import the project into Eclipse with the
following command:
File->Import->Existing projects into workspace
The .gitignore file has been updated accordingly.
Resolves#222
- The 'java' plugin is added implicitly by the gradle/javafx.gradle
script, so there is no longer a need to explicitly apply it.
- The 'application' plugin is no longer necessary now that we are
building native installers with the javafx plugin.
The plugin's jfx* tasks tie into the normal Gradle build lifecycle, such
that `gradle build` will now generate executables and installers
according to the OS on which the build is being run. These files are
output to the `build/distributions` directory.
Installers work as expected OS X and Linux at this point.
Windows installers do build, but a very particular configuration is
necessary on the Windows machine doing the building (this configuration
is to be documented in #109). However, even when the configuration is in
place and the MSI installer is successfully built, there is still a
fatal error at installer execution time relating to a missing
msvp100.dll file. See details at
https://bitbucket.org/shemnon/javafx-gradle/issue/43. An issue has been
created to track this from the Bitsquare side as well--see #108.
The changes made in this commit are based on on the samples at
http://bitbucket.org/shemnon/javafx-gradle and the article at
http://jaxenter.com/tutorial-a-guide-to-the-gradle-javafx-plugin-46270.html
The gradle/javafx.gradle file is copied directly from the sources in the
bitbucket repository above, as is apparently the convention (not sure
why this isn't part of the plugin itself, but that's a question to be
addressed later).
Resolves#66, #100
See #108, #109
Bitsquare depends on specific versions of BitcoinJ and TomP2P that have
not previously been published to any maven repository--until now. Based
on the 'published' branch of the bitcoinj [1] and tomp2p [2] forks under
the bitsquare organization, snapshots have been published to a temporary
repository [3] that has been made available to us by JFrog.
To be as explicit as possible, these custom-published snapshots have
had their version numbers qualified with the short hash of the commit
they were built from. So for bitcoinj, the dependency is no longer
0.12-SNAPSHOT, but 0.12.308de4e-SNAPSHOT. For TomP2P, the version has
gone from 5.0-Alpha24-SNAPSHOT to 5.0-Alpha24.805623c-SNAPSHOT.
Accordingly, these qualified versions are now reflected in the
dependency declarations in build.gradle.
This means that it is no longer necessary to build bitcoinj and tomp2p
locally in order to get up and running with Bitsquare development, and
the README has been updated accordingly. And it also means we can now
set up a Travis CI build with ease (which shall be done with #86).
Resolves#97
[1]: https://github.com/bitsquare/bitcoinj/tree/published
[2]: https://github.com/bitsquare/tomp2p/tree/published
[3]: http://partnerdemo.artifactoryonline.com/partnerdemo/libs-snapshots-local/
For creation of a self-contained executable jar.
Run:
- `./gradle executableJar`
- `java -jar ./build/libs/bitsquare.jar
Note that actually executing the jar fails with an exception from
io.bitsquare.util.AppDirectoryUtil.createDirIfNotExists. This will be
fixed later. The purpose of this commit is only to establish the
executable jar infrastructure.
- Set version at 0.1.0-SNAPSHOT, per http://semver.org practices
- Configure dependencies per existing Maven pom
- Resolve dependencies from jcenter by default, mavenLocal for custom
BitcoinJ and TomP2P binaries (which still must be built separately)
- Copy non-java files (fxml, etc) from src/main/java when processing
resources
`./gradle build` is now completes successfully.