POMファイルおよびArchetype
Mavenプロジェクトは、POMファイルを使用して構成されます。POMファイルは、コンポジットのビルドに必要なSOAインフラストラクチャ・ツールなどの依存関係を記述します。
Archetypeは、プロジェクトを作成するためのテンプレートです。Archetypesは、単一のSOAプロジェクトを含む新しいSOAアプリケーションを作成するため、または既存のSOAアプリケーションに追加のSOAプロジェクトを追加するために提供されています。これらのArchetypesを使用して、SOAコンポジット・アプリケーションのコンパイル、パッケージ化、デプロイ、テストおよびアンデプロイを行うことができます。
次の例は、Oracle SOA Suite用のMaven POMのサンプル・ファイルを示しています。
<?xml version="1.0" encoding="UTF-8"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>com.test</groupId> <artifactId>MyComposite</artifactId> <version>1.0-SNAPSHOT</version> <packaging>sar</packaging> <!-- This POM was generated from the SOA Maven Archetype. Comments in this POM guide you how to use it with your project. This POM relates to this SOA Composite, i.e. the one in this same directory. There is another POM in the SOA Application directory (up one) which handles the whold SOA Application, which may contain additional projects. The parent points to the common SOA parent POM. That is a special POM that is shipped by Oracle as a point of customization (only). You can add default values for properties like serverUrl, etc. to the SOA common parent POM, so that you do not have to specify them over and over in every project POM. --> <parent> <groupId>com.oracle.soa</groupId> <artifactId>soa-project-common</artifactId> <version>???</version> </parent> <properties> <!-- these parameters are used by the compile goal --> <scac.input.dir>${project.basedir}/SOA/</scac.input.dir> <scac.output.dir>${project.basedir}/target</scac.output.dir> <scac.input>${scac.input.dir}/composite.xml</scac.input> <scac.output>${scac.output.dir}/out.xml</scac.output> <scac.error>${scac.output.dir}/error.txt</scac.error> <scac.displayLevel>1</scac.displayLevel> <!-- if you are using a config plan, uncomment the following line and update to point to your config plan --> <!--<configplan>${scac.input.dir}/configplan.xml</configplan>--> <!-- these parameters are used by the deploy and undeploy goals --> <composite.name>${project.artifactId}</composite.name> <composite.revision>${project.version}</composite.revision> <composite.partition>default</composite.partition> <serverUrl>serverUrl
</serverUrl> <user>user
</user> <password>password
</password> <overwrite>true</overwrite> <forceDefault>true</forceDefault> <regenerateRulebase>false</regenerateRulebase> <keepInstancesOnRedeploy>false</keepInstancesOnRedeploy> <!-- these parameters are used by the test goal --> <!-- if you are using the sca-test (test) goal, you need to uncomment the following line and point it to your jndi.properties file. --> <jndi.properties.input>${basedir}/jndi.properties</jndi.properties.input> <scatest.result>${scac.output.dir}/testResult</scatest.result> <!-- input is the name of the composite to run test suties against --> <input>MyComposite</input> </properties> <!-- These refer to the properties defined above. You should probably not need to make any changes beflow this point - these just point to the properties above. --> <build> <plugins> <plugin> <groupId>com.oracle.soa.plugin</groupId> <artifactId>oracle-soa-plugin</artifactId> <version>???</version> <configuration> <compositeName>MyComposite</compositeName> <composite>${scac.input}</composite> <sarLocation>${scac.output.dir}/sca_${project.artifactId}_ rev${composite.revision}.jar</sarLocation> <serverUrl>${serverUrl}</serverUrl> <!-- note: compositeRevision is needed to package, revision is needed to undeploy --> <compositeRevision>${composite.revision}</compositeRevision> <revision>${composite.revision}</revision> <scacInputDir>${scac.input.dir}</scacInputDir> <!-- note: if this composite contains a component that depends on MDS to build, e.g. a Human Task or Business Rule, then you will need to uncomment the next line, and edit it to point to your application directory (which contains .adf/adf-config.xml file with MDS configuration in it --> <!--<appHome>${project.basedir}/..</appHome>--> <!-- If you have a composite which contains a component that depends on MDS (eg. Human Task, Business Rule) AND you want to use a file-based MDS repository, then you need to do either: 1. update the .adf/META-INF/adf-config.xml to point to the correct location of the file based repository, i.e. remove the reference to ${oracle.home} in that file, or 2. define oracleHome here and leave the adf-config.xml file as is. Note that the correct value is the path to your SOA Quickstart or JDeveloper install directory, with "/soa" appended to it. --> <!--<oracleHome>JDEV_HOME/soa</oracleHome>--> <user>${user}</user> <password>${password}</password> <input>${input}</input> </configuration> <!-- extensions=true is needed to use the custom sar packaging type --> <extensions>true</extensions> </plugin> </plugins> </build> </project>
ノート:
ヒューマン・タスクやビジネス・ルールなどのMDSに依存するコンポジットでコンポーネントを使用している場合は、<appHome>${project.basedir}/..</appHome>
行をコメント解除して、使用するアプリケーション・ディレクトリを指すように編集します。
MDSに依存するコンポーネントを使用している場合で、デフォルトのadf-config.xml
ファイルから参照されるようなファイルベースのMDSを使用する場合も、<oracleHome>JDEV_HOME/soa</oracleHome>
をコメント解除して、/soa
を付加し、使用するSOAクイック・スタートまたはJDeveloperインストール・ディレクトリを指すように編集する必要があります。
次の例は、Oracle SOA Suiteアプリケーションを作成するためのPOMファイル内のArchetype座標を示しています。
<groupId>com.oracle.soa.archetype</groupId>
<artifactId>oracle-soa-application</artifactId>
<version>???</version>