SlideShare a Scribd company logo
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
1 h
1
2
3
4
5
1
2
3
4
1
2
3
1
2
7
0
1
0
1 2
5
0 7
1 h-2h
1-2 m
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
mvn install -DskipTests
gradle build -x test
●
Building Large Java Codebase with Bazel - CodeOne
●
●
Building Large Java Codebase with Bazel - CodeOne
<dependency>
<groupId>com.wix.foo</groupId>
<artifactId>api</artifactId>
<version>1.3.1</version>
</dependency>
dependencies {
Implementation
'com.wix.foo:api:1.3.1'
}
●
●
●
●
●
●
●
●
●
●
<dependency>
<groupId>com.wix.foo</groupId>
<artifactId>api</artifactId>
<version>1.0.0-SNAPSHOT</version>
</dependency>
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
java_project
├── WORKSPACE
└── src
└── main
└── java
└── com
├── example
│ ├── A.java
│ ├── B.java
│ └── C.java
└── example2
├── D.java
├── E.java
└── F.java
java_project
├── WORKSPACE
└── src
└── main
└── java
└── com
├── example
│ ├── A.java
│ ├── B.java
│ ├── BUILD
│ └── C.java
└── example2
├── D.java
├── E.java
└── F.java
f(A,B,C)f( )
Source files
env’ variables
dependencies
A
B
C
wix
f(A,B,C)f( )
A
B
C
java_project
├── WORKSPACE
└── src
├── main
│ └── java
│ └── com
│ └── example
│ ├── A.java
│ ├── B.java
│ ├── BUILD FILE
│ ├── C.java
│ └── Example.java
└── test
A.java + :c -> java_library -> a.jar
java_library(
name="a",
srcs=[
"A.java",
],
deps = [":c"])
$ bazel build :a
f(A,B,C)f( )
A
B
C
f(A,B,C)
f( )
A
B
C
f(A,B,C)
f( )
A
B
C
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Compilation Test RunPending
✔ ✔ ✔
✔ ✔ ✔
✔ ✔ ✔ ✔
$ bazel build //...
Building Large Java Codebase with Bazel - CodeOne
✔ ✔ ✔
✔ ✔ ✔
✔ ✔ ✔ ✔
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
*Tech debt
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
✔
✔ ✔ ✔
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne
Building Large Java Codebase with Bazel - CodeOne

More Related Content

PDF
Building Scala with Bazel - Scala Days
PDF
Introduzione DevOps con Ansible
PPTX
CCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
PDF
Blazor ha vinto? Storie di casi reali
PPTX
Introduzione ad ASP.NET Core
PPTX
Creare API pubbliche, come evitare gli errori comuni
ODP
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
PDF
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c
Building Scala with Bazel - Scala Days
Introduzione DevOps con Ansible
CCI2019 - SQL Server ed Azure: Disaster Recovery per tutti
Blazor ha vinto? Storie di casi reali
Introduzione ad ASP.NET Core
Creare API pubbliche, come evitare gli errori comuni
Un'Infrastruttura di Sviluppo Web Enterprise Distribuita Basata su Modelli Pa...
Come installare Liferay 7.2 GA2 su WildFly 16 + Oracle Database 19c

What's hot (17)

PDF
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
PDF
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
PDF
Con Aruba, a lezione di Cloud #lezione 30 - parte 2: 'GitLab e Cloud Server ...
PDF
ASP .NET Core hands-on
PPTX
Livin' with Docker - dallo sviluppo alla produzione
PPTX
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
PDF
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
PDF
Alla scoperta di gRPC
PDF
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
PDF
Introduzione a docker - DockerTutorial.it
PDF
Blazor per uno sviluppatore Web Form
PDF
Azure cointainer instances e sql server
PDF
Deploy Heroku-style di un child theme WordPress su VPS via GIT
PDF
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
PDF
Dal RenderFragment ai Generics, tips for Blazor developers
PDF
Kubernetes Core Concepts
ODP
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Come installare Liferay 7 su JBOSS EAP con il supporto​ Oracle Database
Come installare TIBCO Jasper Reports Server 7.5 Community Edition su RedHat J...
Con Aruba, a lezione di Cloud #lezione 30 - parte 2: 'GitLab e Cloud Server ...
ASP .NET Core hands-on
Livin' with Docker - dallo sviluppo alla produzione
Java EE facile con Spring Boot - Luigi Bennardis - Codemotion Roma 2015
Liferay Portal CE 7.4: Come configurare Oracle Database 19c
Alla scoperta di gRPC
Back to the Future: Migrare da WebForm ad ASP.NET Core gradualmente
Introduzione a docker - DockerTutorial.it
Blazor per uno sviluppatore Web Form
Azure cointainer instances e sql server
Deploy Heroku-style di un child theme WordPress su VPS via GIT
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
Dal RenderFragment ai Generics, tips for Blazor developers
Kubernetes Core Concepts
Netbeans e Xdebug per debugging e profiling di applicazioni PHP
Ad

Similar to Building Large Java Codebase with Bazel - CodeOne (20)

PDF
Dominare il codice legacy
ODP
Maven: Convention over Configuration
PDF
Maven from dummies
PDF
Creazione componenti con Vue js
PDF
TuxIsAlive
PDF
Stanco delle solite Web App? Passa al Prgressive
PPTX
Come sviluppare applicazioni cross device con HTML
PPT
XPages Tips & Tricks, #dd13
PDF
LUG - Logical volumes management
PDF
Standard Dev Workflow
PPT
#dd12 grillo daniele_xpages_tips_tricks_rev2
PDF
Tech Webinar: Come ottimizzare il workflow nello sviluppo di Web App
PDF
NuIEEE - Workshop de Git
PDF
Tdd e continuous delivery sull'infrastruttura
PDF
App Engine + Python
PDF
TDD e Continuous Delivery sull'infrastruttura
PDF
Infrastructure as Data
PDF
Niccolò Becchi: Introduzione a GWT
PDF
Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...
PDF
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...
Dominare il codice legacy
Maven: Convention over Configuration
Maven from dummies
Creazione componenti con Vue js
TuxIsAlive
Stanco delle solite Web App? Passa al Prgressive
Come sviluppare applicazioni cross device con HTML
XPages Tips & Tricks, #dd13
LUG - Logical volumes management
Standard Dev Workflow
#dd12 grillo daniele_xpages_tips_tricks_rev2
Tech Webinar: Come ottimizzare il workflow nello sviluppo di Web App
NuIEEE - Workshop de Git
Tdd e continuous delivery sull'infrastruttura
App Engine + Python
TDD e Continuous Delivery sull'infrastruttura
Infrastructure as Data
Niccolò Becchi: Introduzione a GWT
Codemotion 2013: Succo di lampone: come ottimizzare JAVA e PHP su un’architet...
Succo di lampone: come ottimizzare JAVA e PHP su un’architettura Raspberry Pi...
Ad

More from Natan Silnitsky (20)

PDF
Async-ronizing Success at Wix - Patterns for Seamless Microservices - Devoxx ...
PDF
Integration Ignited Redefining Event-Driven Architecture at Wix - EventCentric
PDF
Reinventing Microservices Efficiency and Innovation with Single-Runtime
PDF
Async Excellence Unlocking Scalability with Kafka - Devoxx Greece
PDF
Wix Single-Runtime - Conquering the multi-service challenge
PDF
WeAreDevs - Supercharge Your Developer Journey with Tiny Atomic Habits
PDF
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
PDF
Effective Strategies for Wix's Scaling challenges - GeeCon
PDF
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
PDF
Workflow Engines & Event Streaming Brokers - Can they work together? [Current...
PDF
DevSum - Lessons Learned from 2000 microservices
PDF
GeeCon - Lessons Learned from 2000 microservices
PDF
Migrating to Multi Cluster Managed Kafka - ApacheKafkaIL
PDF
Wix+Confluent Meetup - Lessons Learned from 2000 Event Driven Microservices
PDF
BuildStuff - Lessons Learned from 2000 Event Driven Microservices
PDF
Lessons Learned from 2000 Event Driven Microservices - Reversim
PDF
Devoxx Ukraine - Kafka based Global Data Mesh
PDF
Devoxx UK - Migrating to Multi Cluster Managed Kafka
PDF
Dev Days Europe - Kafka based Global Data Mesh at Wix
PDF
Kafka Summit London - Kafka based Global Data Mesh at Wix
Async-ronizing Success at Wix - Patterns for Seamless Microservices - Devoxx ...
Integration Ignited Redefining Event-Driven Architecture at Wix - EventCentric
Reinventing Microservices Efficiency and Innovation with Single-Runtime
Async Excellence Unlocking Scalability with Kafka - Devoxx Greece
Wix Single-Runtime - Conquering the multi-service challenge
WeAreDevs - Supercharge Your Developer Journey with Tiny Atomic Habits
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Effective Strategies for Wix's Scaling challenges - GeeCon
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Workflow Engines & Event Streaming Brokers - Can they work together? [Current...
DevSum - Lessons Learned from 2000 microservices
GeeCon - Lessons Learned from 2000 microservices
Migrating to Multi Cluster Managed Kafka - ApacheKafkaIL
Wix+Confluent Meetup - Lessons Learned from 2000 Event Driven Microservices
BuildStuff - Lessons Learned from 2000 Event Driven Microservices
Lessons Learned from 2000 Event Driven Microservices - Reversim
Devoxx Ukraine - Kafka based Global Data Mesh
Devoxx UK - Migrating to Multi Cluster Managed Kafka
Dev Days Europe - Kafka based Global Data Mesh at Wix
Kafka Summit London - Kafka based Global Data Mesh at Wix

Building Large Java Codebase with Bazel - CodeOne