Saturday, November 7, 2015

Oracle ADF - Maven Build And Deploy Issues

Following are some issues which might be faced while using maven with Oracle ADF:

1) [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project MasterModel: Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter -> [Help 1]

Solution: Add distributionManagement tag in POM.xml file for the project mentioned in the error. Like MasterModel project mentioned in above error.

<distributionManagement>
  <repository>
    <id>MasterModel</id>
    <name>localRepo</name>
    <url>file://C:/Users/Username/.m2/repository/</url>
  </repository>
</distributionManagement>

The vale in <url> will differ based on the repository location. Also the above tag will need to be added in all the pom.xml files (i.e pom.xml file for model, viewController and complete application ) otherwise the same error will come at different time in the build.

2) [ERROR] Failed to execute goal on project MasterViewController: Could not resolve dependencies for project deploy.masterapp:MasterViewController:war:1.0-SNAPSHOT: Failure to find com.oracle.adf.library:ADF-Library:pom:12.2.1-0-0 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]

Solution: The above issue came while running the pom build for the project which is accessing a taskFlow from ADF library jar file. After creating the File System connection for the taskflow to be used, when the taskflow was dropped on the page, this library dependency was automatically added in pom.xml file of consuming application. However this was not resolved during build. So the workaround of this was to remove this from the pom.xml file and add the dependency using "Add From Repository" option. Another post describes, how to add dependency from repository.

3) oracle.adf.controller.ControllerException: ADFC-02001: The ADF Controller cannot find '/WEB-INF/child-task-flow-definition.xml'....
Caused by: oracle.mds.core.MetadataNotFoundException: MDS-00013: no metadata found for metadata object "/WEB-INF/child-task-flow-definition.xml"
MDS-00201: PDocument not found in MetadataStore : [store-type=DefaultMetadataStore app-name=DeploymentTest_MasterApp lookup-order=ServletContext,Classpath]

Solution: This issue came on running the jsf page (i.e. right click and run in JDeveloper) which was having taskflow added from a ADF library jar. Please note, this issue only came with the application which was created by selecting Maven as build tool in the last step of application creation wizard. It was not faced for the application which was created using default build option in the last step.

The solution for the above issue is to first run the install target of master application pom.xml file. This will place all the artifacts (jar, war of the projects in master application as well as child application) in the repository. The above seems to be because of missing artifact from MDS but there is no MDS configuration in application. After successful completion of install target of the master application, this issue was not faced on running the application from JDeveloper.

No comments:

Post a Comment