3. What’s in a project
● Source code lives in src/main/java
● Test code lives in src/test/java
● Compiled class files live in target
● pom.xml lives at the root of the
project
4. What’s in a pom?
● Usually have a groupId, artifactId and version
● Can specify aggregated projects via modules
● Can specify a parent to inherit from
● Can specify dependencies
● Goals, plugins, resources, properties, developers, etc...
● Can specify a packaging type for the artifact
9. Other properties
● Goals, plugins, resources, properties, developers, etc...
● Can specify a packaging type like pom, content-
package or bundle
10. What’s a bundle?
● A bundle is a special type of packaging for a project
using the maven-bundle-plugin
● Like a jar but with a manifest
● Manifest contains OSGi headers telling OSGi how to
use the bundle
11. How to use bundles?
● We use bundles for our Java logic
● They are separated based on function
Webdev
Design
Engineering
Team
12. Can we use other packing types?
content-package
uploading content with
embedded bundles
pom
Organizing the project and
setting up inheritance for
sub-poms
13. How does Java get to the Server
source code
OSGI bundle
Target
Content Package
.../install folder
Package Install
14. What’s OSGI?
● Defines how bundles run
● Hot swap bundles at run
time
● Web interface for service
configs and tools
(/system/console)
Operating System
Java Runtime Environment
OSGi
Services
Lifecycle
Bundles
Applications(AEM)
15. More Resources
● Intro to Poms
● Maven: The Complete Reference
● Maven and Vault (including embeddeds)