Git Product home page Git Product logo

pants-example's Introduction

example-jvm

An example repository to demonstrate Pants's experimental Java and Scala support.

See the first JVM blog post for some unique benefits Pants brings to Java and Scala projects.

This repository demonstrates a mix of Java and Scala, which is a common use case. But the Java and Scala backends can be independently enabled, so there is no need to expose Scala BUILD file symbols if you have a pure-Java repository (or vice versa). See comments in the backends section of pants.toml.

This is only one possible way of laying out your project with Pants. See pantsbuild.org/docs/source-roots#examples for some other example layouts.

Running Pants

You run Pants goals using the ./pants wrapper script, which will bootstrap the configured version of Pants if necessary.

Goals

Pants commands are called goals. You can get a list of goals with

./pants help goals

Most goals take arguments to run on. To run on a single directory, use the directory name with : at the end. To recursively run on a directory and all its subdirectories, add :: to the end.

For example:

./pants lint src: 3rdparty::

You can run on all changed files:

./pants --changed-since=HEAD lint

You can run on all changed files, and any of their "dependees":

./pants --changed-since=HEAD --changed-dependees=transitive test

Example Goals

Try these out in this repo!

Run scalafmt and google_java_format

./pants fmt ::  # Format all files.
./pants fmt src/jvm:  # Format only files in this directory (non-recursively).
./pants lint src/jvm::  # Check that all files under `src/jvm` are formatted (recursively).

Check compilation

./pants check ::  # Compile everything.
./pants check src/jvm/org/pantsbuild/example/lib/ExampleLib.java  # Compile a file and its deps.

Run and debug tests

./pants test ::  # Run all tests in the repository.
./pants test tests/jvm/org/pantsbuild/example/lib:  # Run all the tests in this directory.
./pants test tests/jvm/org/pantsbuild/example/lib/ExampleLibSpec.scala -- -z hello  # Run one test method.
./pants test --debug tests/jvm/org/pantsbuild/example/lib/ExampleLibSpec.scala  # Debug one file.

Create a binary file

Writes the result to the dist/ folder.

./pants package src/jvm/org/pantsbuild/example/app:  # Build one binary.
./pants package ::  # Create all binaries.

Determine dependencies

./pants dependencies tests/jvm::
./pants dependencies --transitive tests/jvm::

Determine dependees

That is, find what code depends on a particular files.

./pants dependees src/jvm/org/pantsbuild/example/lib::
./pants dependees --transitive src/jvm/org/pantsbuild/example/lib/ExampleLib.java

Count lines of code

./pants count-loc '**/*'

pants-example's People

Contributors

lrytz avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.