Application Lifecycle Management in JDeveloper 12c
Aino Andriessen, 14 aug 2013
JDeveloper 12c and Maven
ALM before 12c
• Focus on declarative development
• Application Lifecycle Management as an afterthought
– JDeveloper tasks...
3
What about 12c?
• Full Maven support in the entire Fusion Middleware stack
• Subversion 1.7 client
• Git support (since ...
4
5
What is Maven?
• Project description
– pom.xml
• Lifecycle
• 'Tasks'
– Provided by plugins
• sources, compiler, surefire...
6
Maven dependency
management
• An "artifact" is something produced by the software development process
-> deliverable
• A...
7
Artifact Repository
• Repositories store artifacts
– Repository Manager
• Used by Maven for
– plugins
– dependencies
• l...
8
9
Fusion Middleware and Maven
• Maven 3.0.4
• ADF, WLS, Coherence
• Create  enable Maven project
• pom editor
• Dependency...
10
Maven project
• Create Project and define Maven as build tool
• Mavenize existing project
• Create from archetype
• Imp...
11
pom editor
• Fairly complete
– No properties
– No editing for developers, organization, scm, ci, issue mgt, …
– No dist...
12
Pom editor - dependencies
13
Goal execution
• Right mouse on pom.xml
• Configure Goal profile
• No toolbar button
• No custom (plugin) goals or comb...
14
Plugins
• ADF
– ojmake
• can be used for applications and projects that don't involve any deployment, for example, proj...
15
Using ojdeploy / ojmake
• Environment dependencies :-(
– Use properties, environment variables or '-D' (preferences - a...
17
Repository synchronization
plug-in
• Populate a Maven repository from a given Oracle home with the Oracle
specific libr...
19
20
Issues
• Pom editor not complete
• Hard coded local dependencies (ojdeploy, ojmake)
• ojdeploy / ojmake are slow, alway...
21
Summary
• Fairly complete Maven support
• It seems to work!
• pom - jpr sync
• Still dependent on JDeveloper
• Still is...
22
23
More info
• Articles:
– http://www.oracle.com/technetwork/developer-tools/jdev/documentation/1212-nf-
1964675.html#12c(...
24
Upcoming SlideShare
Loading in...5
×

Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen

1,972

Published on

Maven support and dependency management for ADF 12c in Jdeveloper

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,972
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen

  1. 1. Application Lifecycle Management in JDeveloper 12c Aino Andriessen, 14 aug 2013 JDeveloper 12c and Maven
  2. 2. ALM before 12c • Focus on declarative development • Application Lifecycle Management as an afterthought – JDeveloper tasks • Build • Deploy • Code analysis – Dependent on JDeveloper installation • 'internal' libraries • ojdeploy • Relative / hard-coded paths – Build Magic – Limited or no support for build tools like Ant and Maven. – Subversion support comes late, is unintuitive and thus hardly used – Team Productivity Center
  3. 3. 3 What about 12c? • Full Maven support in the entire Fusion Middleware stack • Subversion 1.7 client • Git support (since 11.1.1.6 (v2)) • Better code analysis (ojaudit) • Ant support is slightly improved • Application level build files (since 11.1.1.5) • But still dependent on JDeveloper installation
  4. 4. 4
  5. 5. 5 What is Maven? • Project description – pom.xml • Lifecycle • 'Tasks' – Provided by plugins • sources, compiler, surefire, jar, war, ear, scm, assembly, release, enforcer, sql, … – Goals • compiler:compile, compiler:testCompile, surefire:test, jar:jar, war:war, war:manifest, scm:tag, scm:checkin, … – can be bound to lifecycle phases • Dependency Management • Artifact repository
  6. 6. 6 Maven dependency management • An "artifact" is something produced by the software development process -> deliverable • An artifact is identified by GroupId, ArtifactId, Version • A dependency is an artifact needed by the project – e.g. JUnit, Hibernate, commons-lang, … • Transitive dependencies – Dependencies of dependencies • Bill of Materials – Artifact that only contains dependencies <dependencies> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.3</version> <scope>compile</compiler> <type>jar</jar> </dependency> … </dependencies>
  7. 7. 7 Artifact Repository • Repositories store artifacts – Repository Manager • Used by Maven for – plugins – dependencies • local – ~/.m2/repository – configure in settings.xml – classpath • central – http://repo1.maven.org/maven2/ • The first execution of a plugin or requirement for a dependency pulls the artifact from central and caches it locally • Internal / Organization – Company artifacts – Third party – Proxy central local Project internal
  8. 8. 8
  9. 9. 9 Fusion Middleware and Maven • Maven 3.0.4 • ADF, WLS, Coherence • Create enable Maven project • pom editor • Dependency management – ADF (and other) libraries • jars and Bill of Materials • Repository synchronization plug-in – To load dependencies from Middleware in internal and local – Not a public repository • Maven plugins • Maven Archetypes • … • Maven is all over JDeveloper!!
  10. 10. 10 Maven project • Create Project and define Maven as build tool • Mavenize existing project • Create from archetype • Import Maven project
  11. 11. 11 pom editor • Fairly complete – No properties – No editing for developers, organization, scm, ci, issue mgt, … – No distributionManagement – Profile editing is minimal • sync with jpr • Source editor – with code completion • Effective pom • Search and add dependencies • Include unittests
  12. 12. 12 Pom editor - dependencies
  13. 13. 13 Goal execution • Right mouse on pom.xml • Configure Goal profile • No toolbar button • No custom (plugin) goals or combinations
  14. 14. 14 Plugins • ADF – ojmake • can be used for applications and projects that don't involve any deployment, for example, projects with no deployment profile defined. – ojdeploy • can handle the build of any application and project (including any that involve deployment). You can think of it as a super-set of ojmake. • WebLogic Maven Plugin – (un)install (server), start/stop-server, create-domain, (un)(re)deploy, wlst, appc, ws- jwsc, … • Coherence Maven Plugin aka maven-gar-plugin – package, …
  15. 15. 15 Using ojdeploy / ojmake • Environment dependencies :-( – Use properties, environment variables or '-D' (preferences - additional settings) for workstation configuration – Use ${basedir} for build root • slow: ojmake and ojdeploy are always executed (even if files are already compiled) <plugin> <groupId>com.oracle.adf.plugin</groupId> <artifactId>ojdeploy</artifactId> <version>12.1.2-0-0</version> <configuration> <ojdeploy>C:oracleMiddleware12.1.2.0.0jdeveloperjdevbinojdeploy.exe</ojdeploy> <workspace>C:projectsprobeerselsHR12cHR12c.jws</workspace> <project>ViewController</project> <profile>HR12cVC_adflib HR12c_Project1_webapp</profile> <usemaven>true</usemaven> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>deploy</goal> </goals> </execution> </executions> </plugin>
  16. 16. 17 Repository synchronization plug-in • Populate a Maven repository from a given Oracle home with the Oracle specific libraries • Sync to local is also done automagically from JDeveloper 1. Install plug-in in internal repository 2. Run the Oracle Maven Synchronization Plug-In 1. populate local and internal 3. [Update archetype catalogs] 4. Redo when updating JDev • http://docs.oracle.com/middleware/1212/core/MAVEN/config_maven.htm
  17. 17. 19
  18. 18. 20 Issues • Pom editor not complete • Hard coded local dependencies (ojdeploy, ojmake) • ojdeploy / ojmake are slow, always fully executed – Artifact name is defined in build profile • No Maven project structure (src/main/java) • I couldn't get the BC Unittests to execute (can't find connection) • 'Bending the Maven multi-module way' – Parent has modules, but childs don't reference the parent – No inheritance – No dependencyManagement usage – Use parent pom to build ear • Defaults are not always chosen wisely • Can't continue failed build • Not able to run custom goals
  19. 19. 21 Summary • Fairly complete Maven support • It seems to work! • pom - jpr sync • Still dependent on JDeveloper • Still issues • Don't use Maven as a full build replacement when working in JDeveloper
  20. 20. 22
  21. 21. 23 More info • Articles: – http://www.oracle.com/technetwork/developer-tools/jdev/documentation/1212-nf- 1964675.html#12c(12.1.2.0.0)NewFeatures-TeamDevelopment – http://redstack.wordpress.com/2013/06/11/new-maven-support-in-fusion-middleware- 12-1-2/ – https://groups.google.com/forum/?hl=en#!topic/adf-methodology/3xRjN7qnA94 – http://download.oracle.com/otn_hosted_doc/jdeveloper/12cdemos/Maven_in_12c/Ma ven_in_12c.html – http://docs.oracle.com/middleware/1212/core/MAVEN/introduction.htm#MAVEN8755 • Fusion Middleware Documentation – http://docs.oracle.com/middleware/1212/wls/WLPRG/maven.htm
  22. 22. 24

×