Last modified by Henrique Prange on 2015/09/11 17:57

From version 20.1
edited by Lachlan Deck
on 2008/07/02 23:41
Change comment: Adding example for building WOApplications
To version 6.1
edited by Lachlan Deck
on 2008/06/23 18:51
Change comment: Adding example for frameworks as Jars.

Summary

Details

Page properties
Content
... ... @@ -10,12 +10,6 @@
10 10  
11 11  {{/info}}
12 12  
13 -{{tip title="Hang in there"}}
14 -
15 -This particular guide might look long but some of the xml is duplicated a few times to show differing examples.
16 -
17 -{{/tip}}
18 -
19 19  === What's the aim ===
20 20  
21 21  This might be stating the obvious, but an OO developer will, in the course of time (or is //supposed// to anyway), build up various encapsulated, //reusable//, libraries or frameworks that can be tapped into for differing projects. So let's assume we have multiple frameworks and applications in our build. Each of these has some common ground, such as their dependencies on certain WebObjects frameworks, or the file layout, and of course they each may have something distinctive about them.
... ... @@ -203,7 +203,7 @@
203 203  
204 204  === Repositories ===
205 205  
206 -So far we have assumed that maven just knows where to find third party libraries. There is the default local repository (e.g., /.m2/repository) and a remote one at ibiblio.org or a mirror of the same. See [[http://maven.apache.org/guides/introduction/introduction-to-repositories.html]].
200 +So far we have assumed that maven just knows where to find third party libraries. There is the default local repository (e.g., ,,/.m2/repository) and a remote one at ibiblio.org or a mirror of the same. See [[http://maven.apache.org/guides/introduction/introduction-to-repositories.html]].,,
207 207  
208 208  {{noformat}}
209 209  
... ... @@ -278,10 +278,8 @@
278 278  
279 279  === Packaging Frameworks as Jars ===
280 280  
281 -Here's the definition for /frameworks/pom.xml. Note that it depends on the following Info.plist file being located under trunk/frameworks/src/main/resources:
275 +Here's the definition for /frameworks/pom.xml.
282 282  
283 -{{attachments patterns="Info.plist" upload="false"}}{{/attachments}}
284 -
285 285  {{code title="/frameworks/pom.xml"}}
286 286  
287 287  <?xml version="1.0" encoding="UTF-8"?>
... ... @@ -291,7 +291,7 @@
291 291   http://maven.apache.org/xsd/maven-4.0.0.xsd">
292 292  
293 293   <modelVersion>4.0.0</modelVersion>
294 -
286 +
295 295   <!-- parent artifact -->
296 296   <parent>
297 297   <artifactId>mywostuff</artifactId>
... ... @@ -303,7 +303,7 @@
303 303   <artifactId>frameworks</artifactId>
304 304   <groupId>com.mywostuff</groupId>
305 305   <packaging>pom</packaging>
306 -
298 +
307 307   <!-- framework relevant properties -->
308 308   <properties>
309 309   <!-- NS related properties fills in Info.plist etc-->
... ... @@ -443,7 +443,7 @@
443 443   <!-- artifact identity -->
444 444   <artifactId>CustomBusinessLogic</artifactId>
445 445   <groupId>com.mywostuff.frameworks</groupId>
446 -
438 +
447 447   <!-- specific dependencies -->
448 448   <dependencies>
449 449   <dependency>
... ... @@ -457,231 +457,8 @@
457 457  
458 458  === Packaging Applications ===
459 459  
460 -Here's the definition for /apps/pom.xml which is shared by any sub-modules (i.e., ApplicationA and ApplicationB).
452 +details to come...
461 461  
462 -{{code title="/apps/pom.xml"}}
463 -
464 -<?xml version="1.0" encoding="UTF-8"?>
465 -<project xmlns="http://maven.apache.org/POM/4.0.0"
466 - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
467 - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
468 - http://maven.apache.org/xsd/maven-4.0.0.xsd">
469 -
470 - <modelVersion>4.0.0</modelVersion>
471 -
472 - <!-- parent artifact -->
473 - <parent>
474 - <groupId>com</groupId>
475 - <artifactId>mywostuff</artifactId>
476 - <version>1.0-SNAPSHOT</version>
477 - </parent>
478 -
479 - <!-- artifact identity -->
480 - <artifactId>apps</artifactId>
481 - <groupId>com.mywostuff</groupId>
482 - <packaging>pom</packaging>
483 -
484 - <!-- modules -->
485 - <modules>
486 - <module>ApplicationA</module>
487 - <module>ApplicationB</module>
488 - </modules>
489 -
490 - <!-- specific dependencies (for modules) -->
491 - <dependencies>
492 - <!-- wonder frameworks -->
493 - <dependency>
494 - <artifactId>ERExtensions</artifactId>
495 - <groupId>${wonder.common.groupId}</groupId>
496 - </dependency>
497 - <dependency>
498 - <artifactId>JavaWOExtensions</artifactId>
499 - <groupId>${wonder.common.groupId}</groupId>
500 - </dependency>
501 -
502 - <!-- project libs -->
503 - <dependency>
504 - <artifactId>CustomExtensions</artifactId>
505 - <groupId>${my.frameworks.groupId}</groupId>
506 - </dependency>
507 - <dependency>
508 - <artifactId>CustomBusinessLogic</artifactId>
509 - <groupId>${my.frameworks.groupId}</groupId>
510 - </dependency>
511 -
512 - <!-- webobjects dependencies -->
513 - <dependency>
514 - <artifactId>JavaFoundation</artifactId>
515 - <groupId>${webobjects.groupId}</groupId>
516 - </dependency>
517 - <dependency>
518 - <artifactId>JavaJDBCAdaptor</artifactId>
519 - <groupId>${webobjects.groupId}</groupId>
520 - </dependency>
521 - <dependency>
522 - <artifactId>JavaWebObjects</artifactId>
523 - <groupId>${webobjects.groupId}</groupId>
524 - </dependency>
525 - <dependency>
526 - <artifactId>JavaEOControl</artifactId>
527 - <groupId>${webobjects.groupId}</groupId>
528 - </dependency>
529 - <dependency>
530 - <artifactId>JavaEOAccess</artifactId>
531 - <groupId>${webobjects.groupId}</groupId>
532 - </dependency>
533 - <dependency>
534 - <artifactId>JavaWebObjects</artifactId>
535 - <groupId>${webobjects.groupId}</groupId>
536 - </dependency>
537 - <dependency>
538 - <artifactId>JavaXML</artifactId>
539 - <groupId>${webobjects.groupId}</groupId>
540 - </dependency>
541 - </dependencies>
542 -
543 - <!-- build config (for modules) -->
544 - <build>
545 - <sourceDirectory>src</sourceDirectory>
546 - <testSourceDirectory>tests</testSourceDirectory>
547 - <resources>
548 - <resource>
549 - <targetPath>Resources</targetPath>
550 - <filtering>false</filtering>
551 - <directory>Components</directory>
552 - </resource>
553 - <resource>
554 - <targetPath>Resources</targetPath>
555 - <filtering>false</filtering>
556 - <directory>Resources</directory>
557 - </resource>
558 - <resource>
559 - <targetPath>WebServerResources</targetPath>
560 - <filtering>false</filtering>
561 - <directory>WebServerResources</directory>
562 - </resource>
563 - </resources>
564 - <plugins>
565 - <plugin>
566 - <artifactId>maven-wolifecycle-plugin</artifactId>
567 - <groupId>org.objectstyle.woproject.maven2</groupId>
568 - <version>2.0.15</version>
569 - <extensions>true</extensions>
570 - <configuration>
571 - <source>${java.target}</source>
572 - <target>${java.target}</target>
573 - </configuration>
574 - </plugin>
575 - <plugin>
576 - <groupId>org.apache.maven.plugins</groupId>
577 - <artifactId>maven-javadoc-plugin</artifactId>
578 - <configuration>
579 - <javadocVersion>${java.target}</javadocVersion>
580 - <locale>en-AU</locale>
581 - <minmemory>128m</minmemory>
582 - <maxmemory>512m</maxmemory>
583 - </configuration>
584 - </plugin>
585 - <!--
586 - TODO build numbering
587 - <plugin>
588 - <groupId>org.codehaus.mojo</groupId>
589 - <artifactId>maven-buildnumber-plugin</artifactId>
590 - <version>0.9.6</version>
591 - <executions>
592 - <execution>
593 - <phase>validate</phase>
594 - <goals>
595 - <goal>create</goal>
596 - </goals>
597 - </execution>
598 - </executions>
599 - <configuration>
600 - <doCheck>true</doCheck>
601 - <doUpdate>true</doUpdate>
602 - </configuration>
603 - </plugin>
604 - -->
605 - </plugins>
606 - <pluginManagement>
607 - <plugins>
608 - <plugin>
609 - <groupId>org.apache.maven.plugins</groupId>
610 - <artifactId>maven-compiler-plugin</artifactId>
611 - <configuration>
612 - <source>${java.target}</source>
613 - <target>${java.target}</target>
614 - </configuration>
615 - </plugin>
616 - </plugins>
617 - </pluginManagement>
618 - </build>
619 -</project>
620 -
621 -{{/code}}
622 -
623 -and ApplicationA - which has a couple of extra specific dependencies to add to those inherited from its parent.
624 -
625 -{{code title="/apps/ApplicationA/pom.xml"}}
626 -
627 -<?xml version="1.0"?>
628 -<project>
629 - <modelVersion>4.0.0</modelVersion>
630 -
631 - <!-- parent artifact -->
632 - <parent>
633 - <artifactId>apps</artifactId>
634 - <groupId>com.mywostuff</groupId>
635 - <version>1.0-SNAPSHOT</version>
636 - <relativePath>../apps</relativePath> <!-- e.g., (optional) if your app is under /trunk -->
637 - </parent>
638 -
639 - <!-- artifact identity -->
640 - <artifactId>ApplicationA</artifactId>
641 - <groupId>com.mywostuff.apps</groupId>
642 - <packaging>woapplication</packaging> <!-- woproject specific packaging -->
643 -
644 - <!-- specific properties -->
645 - <properties>
646 - <!-- general properties -->
647 - <mainclass>your.app.Application</mainclass>
648 - </properties>
649 -
650 - <!-- specific dependencies -->
651 - <dependencies>
652 - <!-- wonder frameworks -->
653 - <dependency>
654 - <artifactId>Ajax</artifactId>
655 - <groupId>${wonder.ajax.groupId}</groupId>
656 - </dependency>
657 - <dependency>
658 - <artifactId>ERCaptcha</artifactId>
659 - <groupId>${wonder.common.groupId}</groupId>
660 - <!-- requires jcaptcha-all below -->
661 - </dependency>
662 - <dependency>
663 - <artifactId>WOOgnl</artifactId>
664 - <groupId>${wonder.common.groupId}</groupId>
665 - </dependency>
666 -
667 - <!-- general libs -->
668 - <dependency>
669 - <artifactId>jcaptcha-all</artifactId>
670 - <groupId>com.octo.captcha</groupId>
671 - </dependency>
672 - <dependency>
673 - <artifactId>commons-collections</artifactId>
674 - <groupId>commons-collections</groupId>
675 - </dependency>
676 - <dependency>
677 - <groupId>ognl</groupId>
678 - <artifactId>ognl</artifactId>
679 - </dependency>
680 - </dependencies>
681 -</project>
682 -
683 -{{/code}}
684 -
685 685  === Packaging Applications as True WAR ===
686 686  
687 687  You can find steps to package WO Applications as True WAR [[here>>Packaging WO Applications as true WAR with Maven]].