On Wed, Feb 12, 2014 at 9:20 AM, Isuru Udana <isu...@wso2.com> wrote:
> Hi Sagara, > > > On Wed, Feb 12, 2014 at 12:07 AM, Sagara Gunathunga <sag...@wso2.com>wrote: > >> >> Please find POM restructuring guidelines in addition to things we >> discussed during today's meeting. >> >> 1. Top level POM file is the 'parent POM' for your project and there is >> no real requirement to have separate Maven module to host parent POM file. >> >> 2. Eliminate POM files available on 'component' , 'service-stub' and >> 'features' directories as there is no gain from them instead directly call >> real Maven modules from parent pom file ( REF - [1] ) >> >> e.g - >> >> >> >> <modules> >> <module>service-stubs/service-mgt</module> >> <module>service-stubs/webapp-mgt</module> >> >> <module>components/service-mgt</module> >> <module>components/webapp-mgt</module> >> >> >> <module>features/as-runtimes</module> >> >> <module>features/service-mgt</module> >> <module>features/webapp-mgt</module> >> >> >> </modules> >> >> >> >> [ You can keep same directory structure to enhance human readability ] >> >> >> 3. You must have a <dependencyManagement> section on parent POM and >> should define all your project dependencies along with versions. ( REF - >> [1] ) >> >> >> 5. You CAN'T have <dependencyManagement> sections on any other POM file >> other than parent POM. >> >> 6. In each submodule make sure you have Maven dependencies WITHOUT >> versions ( REF - [2] ) >> >> e.g - <dependency> >> >> <groupId>org.apache.axis2.wso2</groupId> >> >> >> <artifactId>axis2</artifactId> >> >> </dependency> >> >> >> When you introduce a new Maven dependency define it's version under >> <dependencyManagement> >> section of parent POM file. >> >> 7. Make sure you have defined following repositories and plugin >> repositories on parent POM file. These will be used to drag SNAPSHOT >> versions of other carbon projects which used as dependencies of your >> project. >> >> <repositories> >> >> >> >> <repository> >> <id>wso2-nexus</id> >> <name>WSO2 internal Repository</name> >> >> <url>http://maven.wso2.org/nexus/content/groups/wso2-public/</url> >> >> >> <releases> >> <enabled>true</enabled> >> >> >> <updatePolicy>daily</updatePolicy> >> <checksumPolicy>ignore</checksumPolicy> >> </releases> >> </repository> >> >> >> >> <repository> >> <id>wso2.releases</id> >> <name>WSO2 internal Repository</name> >> >> <url>http://maven.wso2.org/nexus/content/repositories/releases/</url> >> >> >> <releases> >> <enabled>true</enabled> >> >> >> <updatePolicy>daily</updatePolicy> >> <checksumPolicy>ignore</checksumPolicy> >> </releases> >> </repository> >> >> >> >> <repository> >> <id>wso2.snapshots</id> >> <name>Apache Snapshot Repository</name> >> >> >> <url>http://maven.wso2.org/nexus/content/repositories/snapshots/</url> >> >> >> <snapshots> >> <enabled>true</enabled> >> >> >> <updatePolicy>daily</updatePolicy> >> </snapshots> >> <releases> >> >> >> <enabled>false</enabled> >> </releases> >> </repository> >> >> </repositories> >> >> >> >> <pluginRepositories> >> >> <pluginRepository> >> <id>wso2.releases</id> >> >> >> <name>WSO2 internal Repository</name> >> >> >> <url>http://maven.wso2.org/nexus/content/repositories/releases/</url> >> >> >> <releases> >> <enabled>true</enabled> >> >> >> <updatePolicy>daily</updatePolicy> >> >> <checksumPolicy>ignore</checksumPolicy> >> </releases> >> >> >> </pluginRepository> >> >> >> <pluginRepository> >> <id>wso2.snapshots</id> >> <name>Apache Snapshot Repository</name> >> >> >> <url>http://maven.wso2.org/nexus/content/repositories/snapshots/</url> >> >> >> <snapshots> >> <enabled>true</enabled> >> >> >> <updatePolicy>daily</updatePolicy> >> >> </snapshots> >> <releases> >> >> <enabled>false</enabled> >> </releases> >> >> >> </pluginRepository> >> >> <pluginRepository> >> <id>wso2-nexus</id> >> >> >> <name>WSO2 internal Repository</name> >> >> >> <url>http://maven.wso2.org/nexus/content/groups/wso2-public/</url> >> >> >> <releases> >> <enabled>true</enabled> >> >> >> <updatePolicy>daily</updatePolicy> >> >> <checksumPolicy>ignore</checksumPolicy> >> </releases> >> >> >> </pluginRepository> >> >> </pluginRepositories> >> >> >> >> >> 8. Make sure you have defined distribution management section as follows >> on your parent POM file. Jenkins will use these details to deploy your >> project's SNAPSHOT artefacts into Nexus so that others can use your >> components without building locally. >> >> <distributionManagement> >> >> >> <repository> >> <id>wso2.releases</id> >> >> >> <name>WSO2 internal Repository</name> >> >> <url>http://maven.wso2.org/nexus/content/repositories/releases/</url> >> >> >> </repository> >> >> <snapshotRepository> >> <id>wso2.snapshots</id> >> >> >> <name>Apache Snapshot Repository</name> >> >> Why this is called *Apache* Snapshot Repository ? I guess name should be > changed. > Yes, it should be 'WSO2' not 'Apache'. Geeth, please note and modify on [1]. Thanks ! > > Thanks. > >> >> <url>http://maven.wso2.org/nexus/content/repositories/snapshots/</url> >> >> >> </snapshotRepository> >> </distributionManagement> >> >> >> >> >> >> Please use carbon-deployment[3] as a reference project. Eranda/Geeth >> please add if I missed anything. >> >> >> [1] - https://github.com/wso2/carbon-deployment/blob/master/pom.xml >> >> [2] - >> https://github.com/wso2/carbon-deployment/blob/master/components/webapp-mgt/org.wso2.carbon.webapp.mgt.ui/pom.xml >> >> [3] - https://github.com/wso2/carbon-deployment/ >> >> >> >> Thanks ! >> -- >> Sagara Gunathunga >> >> Senior Technical Lead; WSO2, Inc.; http://wso2.com >> V.P Apache Web Services; http://ws.apache.org/ >> Linkedin; http://www.linkedin.com/in/ssagara >> Blog ; http://ssagara.blogspot.com >> >> >> _______________________________________________ >> Dev mailing list >> Dev@wso2.org >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> > > > -- > *Isuru Udana* > Senior > * Software Engineer* > WSO2 Inc.; http://wso2.com > email: isu...@wso2.com cell: +94 77 3791887 > blog: http://mytecheye.blogspot.com/ > twitter: http://twitter.com/isudana > -- Sagara Gunathunga Senior Technical Lead; WSO2, Inc.; http://wso2.com V.P Apache Web Services; http://ws.apache.org/ Linkedin; http://www.linkedin.com/in/ssagara Blog ; http://ssagara.blogspot.com
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev