In Java EE 6 WAR is the new EAR. A WAR, however, is entirely "installed" to the maven 3 repo. It's contents (like JAXB-DTOs), cannot be reused from other applications.
Configuration of maven-jar-plugin and maven-install-plugin solves the issue. The first plugin creates a JAR and the latter installs it into the local repo:
After configuration of both plugins, WAR contents are redundantly stored as JAR in the local maven repository and are accessible to other projects by specifying a "usual" dependency to it.
You could also use the attachClasses tag to deploy the jar in addition to the WAR with the "classes" classifier (as suggested by struberg):
A brief introduction into the core principles of Java EE 6 (EJB 3.1, CDI, JPA, JTA,Dependency Injection, Convention over Configuration, interceptors, transactions, REST) using real world code
Unit and integration testing of Java EE 6 applications using JUnit and ScalaTest
Using interceptors for performance measuring and monitoring
Creating mocks with Mockito for EJB 3.1, CDI, JPA, and JAX-RS
Developing embedded integration tests with Arquillian
Productive use of JAX-RS, Contexts and Dependency Injection, EJB 3.1, and JPA
RESTful services and REST clients with Java EE 6
Convention over Configuration with Java EE 6
Effective component configuration with CDI and Convention over Configuration
Plug-in implementation with CDI
Transactional pub/sub without JMS based on CDI and EJB 3.1
Continuous integration with Maven 3, Mercurial/Git, and Hudson/Jenkins
Implementing configurable timers and asynchronous batch processing
Eventual consistency and high-performance deferred writes with Java EE 6
Real-time client and server monitoring with JMX and REST
Functional testing with FitNesse
Performing stress and load tests
Simplest possible, but maintainable, Java EE 6 design and architecture
Special thanks to James Gosling, (nighthacks.com) for the foreword:
"Most books for software developers are horizontal slices through some piece of the technological landscape. "X for Dummies" or "Everything you need to know about X." Breadth and lots of toy examples. This book takes a largely orthogonal approach, taking a vertical slice through a stack of technologies to get something very real done. Adam takes as his organizing principle one real Java EE application that is not a toy, and goes through it, almost line-by-line explaining what it does, and why. In many ways, it feels like John Lions', Lions' classic Commentary on UNIX 6th Edition.
One of the problems that people often have when they start looking at Java is that they get overwhelmed by the vast expanse of facilities available. Most of the APIs have the interesting property that the solution to any task tends to be pretty simple. The complexity is in finding that simple path. Adam's book shows a path to a solution for the problem he was trying to solve. You can treat it as an inspiration to find your own simple path to whatever problem you have at hand, and guidance on how various pieces fit together
Real World Java EE Night Hacks - Dissecting the Business Tier will benefit experienced developers and architects interested in code, not PowerPoint slides :-).
I will cover the topics in subsequent posts - so the content of the book will become more technical again :-). The source code was pushed into the GIT-repository: http://java.net/projects/x-ray.
All samples were tested with Glassfish v3 - v3.1, developed with Netbeans 7 and IntelliJ, built with Maven 3 / Hudson, managed by Mercurial / GIT, unit tested with JUnit / Scala Test, mocked with Mockito, functional tested with fitnesse, and quality-measured with SonarSource.