Create a SOA Application in JDeveloper 12c Using Maven SOA Plug-In by Daniel Rodriguez


clip_image002Maven is a commonly used build system for java projects. It provide benefits ranging from standardizing project layouts, to automated dependency fetching, to automated builds and Maven.  Oracle provides a pretty comprehensive document outlining how to build and create Oracle SOA and BPM projects using Maven. See this article that documents some simple steps to get up and running using Maven. However, when running my first Maven project I encountered some unexpected errors. Maven could not find any SOA archetypes and was also unable to load every dependency. As I found, being able to create, build, and deploy SOA and BPM projects using Maven requires some initial pre-work. Once the set-up is done, the Oracle doc mentioned above will make more sense and will execute successfully.

Why Maven in SOA Applications?

Unlike Ant, Maven does not require developers to specify every command to achieve a goal. Moreover, Maven’s structure in the form of a POM file allows dependencies to be managed easily. However, the biggest benefit is that Maven in JDeveloper provides complete a life-cycle process. Each goal incorporates the previous one and adds functionality. For example, if we run the mvn test command, it will execute the compile, package and deploy commands before running each test on the composite. The idea is to provide a foundation for continuous development and integration. A single command can compile, package, deploy and run all test cases: saving you time.

Gradle provides much of the same functionality of Maven but on a different format. It is implemented using Groovy and, as a result, some of its scripts are much shorter than Maven’s. Unfortunately, Gradle is not native to JDeveloper at this moment.

Maven Goals

Documentation lists five goals for the SOA Maven Plug-in. However, The plug-in itself lists six goals.

  1. compile: Compiles the Application
  2. package: Creates a SAR file of the composite
  3. deploy: Deploys the SOA composite
  4. test: Runs all test created for the SOA composite
  5. undeploy: Removes the composite
  6. help: Provides a list of goals and their corresponding commands.

The help goal is the only goal not listed in the actual Oracle document but displayed on the plug-in itself. While the “help” command may not be a “Goal”, It provides useful information regarding goals, commands, and what each command tries to achieve. Read the complete article here.

SOA & BPM Partner Community

For regular information on Oracle SOA Suite become a member in the SOA & BPM Partner Community for registration please visit (OPN account required) If you need support with your account please contact the Oracle Partner Business Center.

Blog Twitter LinkedIn image[7][2][2][2] Facebook clip_image002[8][4][2][2][2] Wiki

About Jürgen Kress
As a middleware expert Jürgen works at Oracle EMEA Alliances and Channels, responsible for Oracle’s EMEA Fusion Middleware partner business. He is the founder of the Oracle SOA & BPM and the WebLogic Partner Communities and the global Oracle Partner Advisory Councils. With more than 5000 members from all over the world the Middleware Partner Community is the most successful and active community at Oracle. Jürgen manages the community with monthly newsletters, webcasts and conferences. He hosts his annual Fusion Middleware Partner Community Forums and the Fusion Middleware Summer Camps, where more than 200 partners get product updates, roadmap insights and hands-on trainings. Supplemented by many web 2.0 tools like twitter, discussion forums, online communities, blogs and wikis. For the SOA & Cloud Symposium by Thomas Erl, Jürgen is a member of the steering board. He is also a frequent speaker at conferences like the SOA & BPM Integration Days, JAX, UKOUG, OUGN, or OOP.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: