Permalink
Browse files

converting to build using gradle

replacing the existing ant/sbt build system with gradle
  gradle is a much more modern build system then ant
  it has a richer feature set, better IDE support and will be easier to maintain going forward
  it's self installing using the included gradle wrapper and runs in the jvm

removing checked in intellij files
  you will need to regenerate your intellij project
    it is now trivial to create a correctly configured intellij project by File -> New -> Project from Existing Sources -> Gradle -> choose use default gradle wrapper
  this should help reduce pain from changing personal project configurations

updated tests to be more robust to random order test execution and with new test data path
updated travis build

replacing build.xml with a simple wrapper that calls through to gradle

Example gradle usage:
 to compile htsjdk or it's tests
   ./gradlew compileJava
   ./gradlew compileTest

 to build a jar
   ./gradlew jar

 to build a jar, along with source and document jars
 ./gradlew build

 to build a jar that packages all of htsjdk's dependencies in a single jar
  ./gradlew shadowJar

 to run tests, or a single test, or run a test and wait for the debugger
   ./gradlew test
   ./gradlew test --tests "*AlleleUnitTest"
   ./gradlew test --tests "*AlleleUnitTest" --debug-jvm

 to clean the project directory
   ./gradlew clean

 to see an exhaustive list of all available targets
   ./gradlew tasks

Projects that import htsjdk through maven central should be unaffected by these changes.
Projects that include an htsjdk jar in their libs will now find the jar in build/libs/ after running ./gradlew shadowJar
  this "shadow jar" includes all of htsjdk's dependencies bundled within it

an htsjdk only jar can be built with ./gradlew jar
  • Loading branch information...
1 parent 909381a commit 1d052a3e32db3e74b1bced00c31d726b39b384ee @lbergelson lbergelson committed May 2, 2016
Showing with 636 additions and 1,821 deletions.
  1. +0 −10 .classpath
  2. +14 −11 .gitignore
  3. +0 −1 .idea/.name
  4. +0 −23 .idea/compiler.xml
  5. +0 −3 .idea/copyright/profiles_settings.xml
  6. +0 −4 .idea/encodings.xml
  7. +0 −9 .idea/modules.xml
  8. +0 −81 .idea/modules/htsjdk-build.iml
  9. +0 −44 .idea/modules/htsjdk.iml
  10. +0 −22 .idea/sbt.xml
  11. +0 −6 .idea/scala_compiler.xml
  12. +0 −5 .idea/scopes/scope_settings.xml
  13. +0 −7 .idea/vcs.xml
  14. +0 −17 .project
  15. +11 −11 .travis.yml
  16. +56 −0 README.md
  17. +222 −0 build.gradle
  18. +0 −154 build.sbt
  19. +23 −258 build.xml
  20. +0 −581 etc/test/junit-noframes.xsl
  21. +0 −26 etc/test/testng.css
  22. BIN gradle/wrapper/gradle-wrapper.jar
  23. +6 −0 gradle/wrapper/gradle-wrapper.properties
  24. +164 −0 gradlew
  25. +0 −66 htsjdk.iml
  26. +0 −352 htsjdk.ipr
  27. BIN lib/apache-ant-1.8.2-bzip2.jar
  28. BIN lib/commons-compress-1.4.1.jar
  29. BIN lib/commons-jexl-2.1.1.jar
  30. BIN lib/commons-logging-1.1.1.jar
  31. BIN lib/ngs-java-1.2.2.jar
  32. BIN lib/snappy-java-1.0.3-rc3.jar
  33. BIN lib/testng/jcommander-1.48.jar
  34. BIN lib/testng/testng-6.9.10.jar
  35. BIN lib/xz-1.5.jar
  36. +0 −5 project/plugins.sbt
  37. +1 −1 src/test/java/htsjdk/samtools/BAMCigarOverflowTest.java
  38. +1 −1 src/test/java/htsjdk/samtools/BAMFileIndexTest.java
  39. +2 −2 src/test/java/htsjdk/samtools/BAMIndexWriterTest.java
  40. +1 −1 src/test/java/htsjdk/samtools/BAMIteratorTest.java
  41. +3 −3 src/test/java/htsjdk/samtools/BAMRemoteFileTest.java
  42. +1 −1 src/test/java/htsjdk/samtools/CRAMComplianceTest.java
  43. +2 −2 src/test/java/htsjdk/samtools/CRAMEdgeCasesTest.java
  44. +3 −3 src/test/java/htsjdk/samtools/CRAMFileBAIIndexTest.java
  45. +1 −1 src/test/java/htsjdk/samtools/CRAMFileReaderTest.java
  46. +4 −4 src/test/java/htsjdk/samtools/CRAMFileWriterTest.java
  47. +10 −5 src/test/java/htsjdk/samtools/DownsamplingIteratorTests.java
  48. +1 −1 src/test/java/htsjdk/samtools/SAMFileReaderTest.java
  49. +1 −1 src/test/java/htsjdk/samtools/SAMFileWriterFactoryTest.java
  50. +1 −1 src/test/java/htsjdk/samtools/SAMIntegerTagTest.java
  51. +3 −3 src/test/java/htsjdk/samtools/SAMRecordUnitTest.java
  52. +1 −1 src/test/java/htsjdk/samtools/SamFileHeaderMergerTest.java
  53. +1 −1 src/test/java/htsjdk/samtools/SamFilesTest.java
  54. +3 −3 src/test/java/htsjdk/samtools/SamReaderFactoryTest.java
  55. +3 −3 src/test/java/htsjdk/samtools/SamReaderSortTest.java
  56. +2 −2 src/test/java/htsjdk/samtools/SamSpecIntTest.java
  57. +1 −1 src/test/java/htsjdk/samtools/SamStreamsTest.java
  58. +1 −1 src/test/java/htsjdk/samtools/SequenceNameTruncationAndValidationTest.java
  59. +2 −2 src/test/java/htsjdk/samtools/ValidateSamFileTest.java
  60. +1 −1 src/test/java/htsjdk/samtools/fastq/FastqWriterTest.java
  61. +1 −1 src/test/java/htsjdk/samtools/filter/JavascriptSamRecordFilterTest.java
  62. +1 −1 src/test/java/htsjdk/samtools/liftover/LiftOverTest.java
  63. +1 −1 src/test/java/htsjdk/samtools/metrics/MetricsFileTest.java
  64. +1 −1 src/test/java/htsjdk/samtools/reference/FastaSequenceFileTest.java
  65. +1 −1 src/test/java/htsjdk/samtools/reference/FastaSequenceIndexTest.java
  66. +1 −1 src/test/java/htsjdk/samtools/reference/IndexedFastaSequenceFileTest.java
  67. +1 −1 src/test/java/htsjdk/samtools/reference/ReferenceSequenceFileFactoryTests.java
  68. +12 −12 src/test/java/htsjdk/samtools/reference/ReferenceSequenceFileWalkerTest.java
  69. +2 −2 src/test/java/htsjdk/samtools/seekablestream/SeekableBufferedStreamTest.java
  70. +1 −1 src/test/java/htsjdk/samtools/seekablestream/SeekableFileStreamTest.java
  71. +3 −3 src/test/java/htsjdk/samtools/sra/SRAAccessionTest.java
  72. +1 −1 src/test/java/htsjdk/samtools/sra/SRATest.java
  73. +1 −1 src/test/java/htsjdk/samtools/util/BlockCompressedTerminatorTest.java
  74. +2 −4 src/test/java/htsjdk/samtools/util/IntelDeflaterTest.java
  75. +9 −9 src/test/java/htsjdk/samtools/util/IntervalListTest.java
  76. +3 −3 src/test/java/htsjdk/samtools/util/IoUtilTest.java
  77. +7 −7 src/test/java/htsjdk/samtools/util/QualityEncodingDetectorTest.java
  78. +1 −1 src/test/java/htsjdk/tribble/TestUtils.java
  79. +2 −2 src/test/java/htsjdk/tribble/index/IndexFactoryTest.java
  80. +3 −3 src/test/java/htsjdk/tribble/index/tabix/TabixIndexTest.java
  81. +1 −1 src/test/java/htsjdk/variant/PrintVariantsExampleTest.java
  82. +1 −1 src/test/java/htsjdk/variant/VariantBaseTest.java
  83. +1 −1 src/test/java/htsjdk/variant/utils/SAMSequenceDictionaryExtractorTest.java
  84. +4 −3 src/test/java/htsjdk/variant/variantcontext/GenotypeLikelihoodsUnitTest.java
  85. +2 −2 src/test/java/htsjdk/variant/variantcontext/VariantContextUnitTest.java
  86. +1 −1 src/test/java/htsjdk/variant/variantcontext/filter/FilteringVariantContextIteratorTest.java
  87. +1 −1 src/test/java/htsjdk/variant/variantcontext/filter/JavascriptVariantFilterTest.java
  88. +1 −1 src/test/java/htsjdk/variant/variantcontext/writer/TabixOnTheFlyIndexCreationTest.java
  89. +1 −1 src/test/java/htsjdk/variant/variantcontext/writer/VCFWriterUnitTest.java
  90. +4 −4 src/test/java/htsjdk/variant/vcf/AbstractVCFCodecTest.java
  91. +19 −8 src/test/java/htsjdk/variant/vcf/VCFHeaderUnitTest.java
View
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src/java"/>
- <classpathentry kind="src" path="src/tests/java"/>
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
- <classpathentry kind="lib" path="lib/testng/testng-5.5-jdk15.jar"/>
- <classpathentry kind="lib" path="lib/commons-jexl-2.1.1.jar"/>
- <classpathentry kind="lib" path="lib/snappy-java-1.0.3-rc3.jar"/>
- <classpathentry kind="output" path="bin"/>
-</classpath>
View
@@ -1,16 +1,19 @@
htsjdk.iws
.command_tmp
-classes
-testclasses
-javadoc
-dist
-contracts
atlassian-ide-plugin.xml
-intellij.testclasses
-intellij.classes
/htsjdk.version.properties
-/bin
/test-output
-target
-.idea/libraries
-.idea/workspace.xml
+
+#intellij
+.idea/
+src/htsjdk.iml
+*.iml
+*.ipr
+*.iws
+
+
+
+
+#gradle stuff
+.gradle/
+build/
View
@@ -1 +0,0 @@
-htsjdk
View
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="CompilerConfiguration">
- <option name="DEFAULT_COMPILER" value="Javac" />
- <resourceExtensions />
- <wildcardResourcePatterns>
- <entry name="!?*.java" />
- <entry name="!?*.form" />
- <entry name="!?*.class" />
- <entry name="!?*.groovy" />
- <entry name="!?*.scala" />
- <entry name="!?*.flex" />
- <entry name="!?*.kt" />
- <entry name="!?*.clj" />
- <entry name="!?*.aj" />
- </wildcardResourcePatterns>
- <annotationProcessing>
- <profile default="true" name="Default" enabled="false">
- <processorPath useClasspath="true" />
- </profile>
- </annotationProcessing>
- </component>
-</project>
@@ -1,3 +0,0 @@
-<component name="CopyrightManager">
- <settings default="" />
-</component>
View
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="Encoding" useUTFGuessing="true" native2AsciiForPropertiesFiles="false" />
-</project>
View
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="ProjectModuleManager">
- <modules>
- <module fileurl="file://$PROJECT_DIR$/.idea/modules/htsjdk.iml" filepath="$PROJECT_DIR$/.idea/modules/htsjdk.iml" />
- <module fileurl="file://$PROJECT_DIR$/.idea/modules/htsjdk-build.iml" filepath="$PROJECT_DIR$/.idea/modules/htsjdk-build.iml" />
- </modules>
- </component>
-</project>
@@ -1,81 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id="htsjdk-build" external.linked.project.path="$MODULE_DIR$/../../project" external.root.project.path="$MODULE_DIR$/../.." external.system.id="SBT" sbt.imports="sbt._, Keys._, _root_.de.johoop.testngplugin.TestNGPlugin._, _root_.sbtassembly.Plugin._, _root_.com.typesafe.sbt.SbtPgp.autoImport._, _root_.sbt.plugins.IvyPlugin, _root_.sbt.plugins.JvmPlugin, _root_.sbt.plugins.CorePlugin, _root_.sbt.plugins.JUnitXmlReportPlugin, _root_.com.typesafe.sbt.SbtPgp" sbt.resolvers="http://repo1.maven.org/maven2/|maven|public, C:\Users\J\.ivy2\cache|ivy|Local cache" type="SBT_MODULE" version="4">
- <component name="NewModuleRootManager" inherit-compiler-output="false">
- <output url="file://$MODULE_DIR$/../../project/target/idea-classes" />
- <output-test url="file://$MODULE_DIR$/../../project/target/idea-test-classes" />
- <exclude-output />
- <content url="file://$MODULE_DIR$/../../project">
- <sourceFolder url="file://$MODULE_DIR$/../../project" isTestSource="false" />
- <excludeFolder url="file://$MODULE_DIR$/../../project/project/target" />
- <excludeFolder url="file://$MODULE_DIR$/../../project/target" />
- </content>
- <orderEntry type="inheritedJdk" />
- <orderEntry type="sourceFolder" forTests="false" />
- <orderEntry type="module-library">
- <library name="SBT: sbt-and-plugins">
- <CLASSES>
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/compiler-ivy-integration-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.ivy2/cache/net.databinder/dispatch-futures_2.10/jars/dispatch-futures_2.10-0.8.10.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/lib/scala-reflect.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/relation-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/apply-macro-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/jline-2.11.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/lib/jansi.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/actions-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/tasks-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.ivy2/cache/commons-codec/commons-codec/jars/commons-codec-1.4.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/testing-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/completion-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/cache-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/test-interface-1.0.jar!/" />
- <root url="jar://$USER_HOME$/.ivy2/cache/org.apache.httpcomponents/httpclient/jars/httpclient-4.1.3.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/classpath-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/compile-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/cross-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.ivy2/cache/org.scala-lang/scala-actors/jars/scala-actors-2.10.2.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/sbinary_2.10-0.4.2.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/persist-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/compiler-integration-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/xsbti/interface-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.ivy2/cache/commons-logging/commons-logging/jars/commons-logging-1.1.1.jar!/" />
- <root url="jar://$USER_HOME$/.ivy2/cache/org.bouncycastle/bcprov-jdk15on/jars/bcprov-jdk15on-1.51.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/sbt-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.ivy2/cache/com.jsuereth/pgp-library_2.10/jars/pgp-library_2.10-1.0.0.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/process-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/jsch-0.1.46.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/logic-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/lib/scala-library.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/lib/jline.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/classfile-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/control-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/main-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.ivy2/cache/scala_2.10/sbt_0.13/com.jsuereth/sbt-pgp/jars/sbt-pgp-1.0.0.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/io-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/incremental-compiler-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/run-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/collections-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/scala-reflect-2.10.4.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/task-system-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.ivy2/cache/net.databinder/dispatch-http_2.10/jars/dispatch-http_2.10-0.8.10.jar!/" />
- <root url="jar://$USER_HOME$/.ivy2/cache/net.databinder/dispatch-core_2.10/jars/dispatch-core_2.10-0.8.10.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/api-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/lib/scala-compiler.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/ivy-2.3.0.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/tracking-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/launcher-interface-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.ivy2/cache/org.bouncycastle/bcpg-jdk15on/jars/bcpg-jdk15on-1.51.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/ivy-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.ivy2/cache/org.apache.httpcomponents/httpcore/jars/httpcore-4.1.4.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/test-agent-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/command-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/logging-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.ivy2/cache/scala_2.10/sbt_0.13/com.eed3si9n/sbt-assembly/jars/sbt-assembly-0.11.2.jar!/" />
- <root url="jar://$USER_HOME$/.sbt/boot/scala-2.10.4/org.scala-sbt/sbt/0.13.5/main-settings-0.13.5.jar!/" />
- <root url="jar://$USER_HOME$/.ivy2/cache/scala_2.10/sbt_0.13/de.johoop/sbt-testng-plugin/jars/sbt-testng-plugin-3.0.2.jar!/" />
- </CLASSES>
- <JAVADOC />
- <SOURCES />
- </library>
- </orderEntry>
- </component>
-</module>
View
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<module external.linked.project.id="htsjdk" external.linked.project.path="$MODULE_DIR$/../.." external.root.project.path="$MODULE_DIR$/../.." external.system.id="SBT" type="JAVA_MODULE" version="4">
- <component name="NewModuleRootManager" inherit-compiler-output="false">
- <output url="file://$MODULE_DIR$/../../target/classes" />
- <output-test url="file://$MODULE_DIR$/../../target/test-classes" />
- <exclude-output />
- <content url="file://$MODULE_DIR$/../..">
- <sourceFolder url="file://$MODULE_DIR$/../../src/java" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/../../src/main/scala" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/../../target/src_managed/main" isTestSource="false" />
- <sourceFolder url="file://$MODULE_DIR$/../../src/test/scala" isTestSource="true" />
- <sourceFolder url="file://$MODULE_DIR$/../../src/tests" isTestSource="true" />
- <sourceFolder url="file://$MODULE_DIR$/../../target/src_managed/test" isTestSource="true" />
- <sourceFolder url="file://$MODULE_DIR$/../../src/main/resources" type="java-resource" />
- <sourceFolder url="file://$MODULE_DIR$/../../target/resource_managed/main" type="java-resource" />
- <sourceFolder url="file://$MODULE_DIR$/../../src/test/resources" type="java-test-resource" />
- <sourceFolder url="file://$MODULE_DIR$/../../target/resource_managed/test" type="java-test-resource" />
- <excludeFolder url="file://$MODULE_DIR$/../../target" />
- </content>
- <orderEntry type="inheritedJdk" />
- <orderEntry type="sourceFolder" forTests="false" />
- <orderEntry type="library" name="SBT: com.beust:jcommander:1.27:jar" level="project" />
- <orderEntry type="library" name="SBT: commons-logging:commons-logging:1.2:jar" level="project" />
- <orderEntry type="library" scope="TEST" name="SBT: de.johoop:sbt-testng-interface_2.11:3.0.2:jar" level="project" />
- <orderEntry type="library" name="SBT: org.apache.commons:commons-jexl:2.1.1:jar" level="project" />
- <orderEntry type="library" name="SBT: org.beanshell:bsh:2.0b4:jar" level="project" />
- <orderEntry type="library" name="SBT: org.scala-lang:scala-library:2.11.4:jar" level="project" />
- <orderEntry type="library" name="SBT: org.testng:testng:6.8.8:jar" level="project" />
- <orderEntry type="library" name="SBT: org.xerial.snappy:snappy-java:1.1.1.3:jar" level="project" />
- <orderEntry type="library" scope="TEST" name="SBT: org.yaml:snakeyaml:1.12:jar" level="project" />
- <orderEntry type="module-library">
- <library name="SBT: unmanaged-jars">
- <CLASSES>
- <root url="jar://$MODULE_DIR$/../../lib/commons-logging-1.1.1.jar!/" />
- <root url="jar://$MODULE_DIR$/../../lib/snappy-java-1.0.3-rc3.jar!/" />
- <root url="jar://$MODULE_DIR$/../../lib/commons-jexl-2.1.1.jar!/" />
- <root url="jar://$MODULE_DIR$/../../lib/ngs-java-1.2.2.jar!/" />
- </CLASSES>
- <JAVADOC />
- <SOURCES />
- </library>
- </orderEntry>
- </component>
-</module>
View
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="ScalaSbtSettings">
- <option name="linkedExternalProjectsSettings">
- <SbtProjectSettings>
- <option name="externalProjectPath" value="$PROJECT_DIR$" />
- <option name="jdk" value="1.6" />
- <option name="modules">
- <set>
- <option value="$PROJECT_DIR$" />
- <option value="$PROJECT_DIR$/project" />
- </set>
- </option>
- <option name="sbtVersion" value="0.13.5" />
- </SbtProjectSettings>
- <SbtProjectSettings>
- <option name="externalProjectPath" value="C:\workspace\htsjdk" />
- <option name="useAutoImport" value="true" />
- </SbtProjectSettings>
- </option>
- </component>
-</project>
View
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="ScalaCompilerConfiguration">
- <profile name="SBT 1" modules="htsjdk" />
- </component>
-</project>
@@ -1,5 +0,0 @@
-<component name="DependencyValidationManager">
- <state>
- <option name="SKIP_IMPORT_STATEMENTS" value="false" />
- </state>
-</component>
View
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
- <component name="VcsDirectoryMappings">
- <mapping directory="" vcs="Git" />
- <mapping directory="$PROJECT_DIR$" vcs="Git" />
- </component>
-</project>
View
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>htsjdk</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
View
@@ -1,19 +1,19 @@
language: java
+dist: trusty
sudo: true
+before_cache:
+ - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
+cache:
+ directories:
+ - $HOME/.gradle/caches/
+ - $HOME/.gradle/wrapper/
+ - $HOME/.m2
jdk:
- oraclejdk8
-install: ant
-script: ant all test sra-test
+script: ./gradlew test testSRA testIntelDeflater
after_success:
- echo "TRAVIS_BRANCH='$TRAVIS_BRANCH'";
echo "JAVA_HOME='$JAVA_HOME'";
- if [ "$TRAVIS_BRANCH" == "master" ] && [ "$JAVA_HOME" == "/usr/lib/jvm/java-8-oracle" ]; then
- sbt \
- 'set buildSnapshot := true' \
- 'set javacOptions in (Compile, doc) ++= Seq("-quiet")' \
- 'set test in publish := {}' \
- 'set resolvers += Resolver.url("bintray-sbt-plugin-releases", url("http://dl.bintray.com/content/sbt/sbt-plugin-releases"))(Resolver.ivyStylePatterns)' \
- 'set publishTo := Option("artifactory-snapshots-publish" at "https://artifactory.broadinstitute.org/artifactory/libs-snapshot-local;build.timestamp=" + new java.util.Date().getTime)' \
- "set credentials += Credentials(\"Artifactory Realm\", \"artifactory.broadinstitute.org\", \"${ARTIFACTORY_USERNAME}\", \"${ARTIFACTORY_PASSWORD}\")" \
- publish;
+ if [ "$TRAVIS_BRANCH" == "master" ]; then
+ ./gradlew uploadArchives;
fi
View
@@ -15,6 +15,62 @@ Please see the [HTSJDK Documentation](http://samtools.github.io/htsjdk) for more
> **NOTE: _HTSJDK does not currently support the latest Variant Call Format Specification (VCFv4.3 and BCFv2.2)._**
+#### Building HTSJDK
+
+HTSJDK is now built using [gradle](http://gradle.org/).
+
+A wrapper script (`gradlew`) is included which will download the appropriate version of gradle on the first invocation.
+
+Example gradle usage from the htsjdk root directory:
+ - compile and build a jar
+ ```
+ ./gradlew
+ ```
+ or
+ ```
+ ./gradlew jar
+ ```
+ The jar will be in build/libs/htsjdk-\<version\>.jar where version is based on the current git commit.
+
+ - run tests, a specific test class, or run a test and wait for the debugger to connect
+ ```
+ ./gradlew test
+
+ ./gradlew test --tests htsjdk.variant.variantcontext.AlleleUnitTest
+ ./gradlew test --tests "*AlleleUnitTest"
+
+ ./gradlew test --tests "*AlleleUnitTest" --debug-jvm
+ ```
+
+ - clean the project directory
+ ```
+ ./gradlew clean
+ ```
+
+ - build a monolithic jar that includes all of htsjdk's dependencies
+ ```
+ ./gradlew shadowJar
+ ```
+
+ - create a snapshot and install it into your local maven repository
+ ```
+ ./gradlew install
+ ```
+
+ - for an exhaustive list of all available targets
+ ```
+ ./gradlew tasks
+ ```
+
+#### Create an HTSJDK project in IntelliJ
+To create a project in IntelliJ IDE for htsjdk do the following:
+
+1. Select fom the menu: `File -> New -> Project from Existing Sources`
+2. In the resulting dialog, chose `Import from existing model`, select `Gradle` and `Next`
+3. Choose the `default gradle wrapper` and `Finish`.
+
+From time to time if dependencies change in htsjdk you may need to refresh the project from the `View -> Gradle` menu.
+
#### Licensing Information
Not all sub-packages of htsjdk are subject to the same license, so a license notice is included in each source file or sub-package as appropriate. Please check the relevant license notice whenever you start working with a part of htsjdk that you have not previously worked with to avoid any surprises.
Oops, something went wrong.

0 comments on commit 1d052a3

Please sign in to comment.