Java and Scala overview
Pants's support for Java and Scala.
We are done implementing most functionality for Pants's Java and Scala support (tracked here). However, there may be use cases that we aren't yet handling.
Please share feedback for what you need to use Pants with your JVM project by either opening a GitHub issue or joining our Slack!
Check out github.com/pantsbuild/example-jvm to try out Pants's Java and Scala support.
Initial setup
First, activate the relevant backends in pants.toml
:
[GLOBAL]
backend_packages = [
# Each backend can be used independently, so there is no need to enable Scala if you
# have a pure-Java repository (or vice versa).
"pants.backend.experimental.java",
"pants.backend.experimental.scala",
]
Then run pants tailor ::
to generate BUILD files. This will create java_sources
and scala_sources
targets in every directory containing library code, as well as test targets like scalatest_tests
and junit_tests
for filenames that look like tests.
❯ pants tailor ::
Created src/jvm/org/pantsbuild/example/app/BUILD:
- Add scala_sources target app
Created src/jvm/org/pantsbuild/example/lib/BUILD:
- Add java_sources target lib
Created tests/jvm/org/pantsbuild/example/lib/BUILD:
- Add scalatest_tests target lib
You can run pants list ::
to see all targets in your project:
❯ pants list
...
src/jvm/org/pantsbuild/example/app:app
src/jvm/org/pantsbuild/example/app/ExampleApp.scala
src/jvm/org/pantsbuild/example/lib:lib
src/jvm/org/pantsbuild/example/lib/ExampleLib.java
tests/jvm/org/pantsbuild/example/lib:lib
tests/jvm/org/pantsbuild/example/lib/ExampleLibSpec.scala