Henrik Bernström Hace 14 años Kudos, Mika! Kudos, Liferay! Por favor identifíquese para votar. Contestar como... Cancelar
Jeffrey Handa Hace 14 años Thanks Mika! Great explanation. Por favor identifíquese para votar. Contestar como... Cancelar
Tomas Polesovsky Hace 14 años Thank you Mika,yes, yes, yes!!! I was waiting for news at http://www.liferay.com/web/guest/community/forums/-/message_boards/message/2527014, but this information is perfect!Dreams finally come true! Por favor identifíquese para votar. Contestar como... Cancelar
Lukas Matejka Hace 14 años Great work! thanks, we can finally mavenize all our Liferay stuff Por favor identifíquese para votar. Contestar como... Cancelar
Jonas Yuan Hace 14 años Great! Liferay goes Maven ... Thank you, Mika. Por favor identifíquese para votar. Contestar como... Cancelar
Neil Griffin Hace 14 años Mika, you da man! Por favor identifíquese para votar. Contestar como... Cancelar
Sampsa Sohlman Hace 14 años Kiitos Mika, this is what the community has been waiting for. I did modify http://wiki.github.com/azzazzel/liferay-maven-sdk plugin to work with EE.Future support for new Extlet would be good also .. then Liferay customization will be totally mavenized. Por favor identifíquese para votar. Contestar como... Cancelar
Thiago Leão Moreira Hace 14 años Great post! So good explained!Thanks Mika! Por favor identifíquese para votar. Contestar como... Cancelar
Behrang Saeedzadeh Hace 14 años The public SVN repo seems to be down. It cannot be access it via http://svn.liferay.com/repos/public Por favor identifíquese para votar. Contestar como... Cancelar Mika Koivisto Behrang Saeedzadeh Hace 14 años It is up now. Was down for maintenance work. Por favor identifíquese para votar. Contestar como... Cancelar Behrang Saeedzadeh Mika Koivisto Hace 14 años Thank you Mika! Por favor identifíquese para votar. Contestar como... Cancelar Brian Ko Mika Koivisto Hace 13 años Hi Mika,In step 4, I need to install the Liferay maven plugins and archetypes go into support-maven folder and run "mvn install".But where is the folder? Is it created by one of those 3 ant command before step 4? Thank you.Brian Por favor identifíquese para votar. Contestar como... Cancelar Louis Sacco Brian Ko Hace 13 años There's no doubt this certainly is going in the right directio, but suppose you create any type of plugin and you check your code into SVN which will trigger a CI build on your build servers. These build servers will not have any knowledge of Liferay dependencies nor will they allow us to install Liferay on the servers to satisfy those dependencies (if you were to use ANT). This is where Maven comes into the picture nicely. The idea would be that I could create a POM file for my plugin and define a set of dependencies that Liferay maintains in their Maven repository. Some attention would be needed to define which dependencies would be for EE customers too. From there, our build server would build based on the POM and pull down the Maven dependencies to satisfy the requirements for a successful build. Finally, we could then deploy the resulting build artifact (Liferay plugin WAR) to our internal Maven repository for our INFRA team to deploy to the various environments we have. As per Maven’s design we could deploy as a SNAPSHOT build for our DEV/TEST environment and then a Release build with a release number for PROD deployments. As an example, a POM may define a Liferay dependency as follows like you show above: <dependencies> <dependency> <groupId>com.liferay</groupId> <artifactId>portal-service</artifactId> <version>6.0.5</version> </dependency> ... </dependencies>We would then define a repository for the Liferay dependencies where we could retrieve this dependency: <repository> <id>Liferay</id> <name>Liferay Repsitory</name> <url>http://repository.liferay.com/maven2</url> </repository>Finally, in your repository, you could establish the transitive dependencies you require (i.e., the ones needed to compile your jar) in your .pom file that will be hosted in the repository so that when someone pulls the Liferay jar it will also pull those dependencies as well. As an example, see the Spring pom from Maven repo that illustrates how they require commons-logging, commons-collections and others. This way you will always have full control of which dependencies you want the customer to use with your JAR so they don’t go and muck things up by using an obsolete version.I really look forward to seeing Liferay provide Maven dependencies for EE customers as well in a future release. Por favor identifíquese para votar. Contestar como... Cancelar
Mika Koivisto Behrang Saeedzadeh Hace 14 años It is up now. Was down for maintenance work. Por favor identifíquese para votar. Contestar como... Cancelar Behrang Saeedzadeh Mika Koivisto Hace 14 años Thank you Mika! Por favor identifíquese para votar. Contestar como... Cancelar Brian Ko Mika Koivisto Hace 13 años Hi Mika,In step 4, I need to install the Liferay maven plugins and archetypes go into support-maven folder and run "mvn install".But where is the folder? Is it created by one of those 3 ant command before step 4? Thank you.Brian Por favor identifíquese para votar. Contestar como... Cancelar Louis Sacco Brian Ko Hace 13 años There's no doubt this certainly is going in the right directio, but suppose you create any type of plugin and you check your code into SVN which will trigger a CI build on your build servers. These build servers will not have any knowledge of Liferay dependencies nor will they allow us to install Liferay on the servers to satisfy those dependencies (if you were to use ANT). This is where Maven comes into the picture nicely. The idea would be that I could create a POM file for my plugin and define a set of dependencies that Liferay maintains in their Maven repository. Some attention would be needed to define which dependencies would be for EE customers too. From there, our build server would build based on the POM and pull down the Maven dependencies to satisfy the requirements for a successful build. Finally, we could then deploy the resulting build artifact (Liferay plugin WAR) to our internal Maven repository for our INFRA team to deploy to the various environments we have. As per Maven’s design we could deploy as a SNAPSHOT build for our DEV/TEST environment and then a Release build with a release number for PROD deployments. As an example, a POM may define a Liferay dependency as follows like you show above: <dependencies> <dependency> <groupId>com.liferay</groupId> <artifactId>portal-service</artifactId> <version>6.0.5</version> </dependency> ... </dependencies>We would then define a repository for the Liferay dependencies where we could retrieve this dependency: <repository> <id>Liferay</id> <name>Liferay Repsitory</name> <url>http://repository.liferay.com/maven2</url> </repository>Finally, in your repository, you could establish the transitive dependencies you require (i.e., the ones needed to compile your jar) in your .pom file that will be hosted in the repository so that when someone pulls the Liferay jar it will also pull those dependencies as well. As an example, see the Spring pom from Maven repo that illustrates how they require commons-logging, commons-collections and others. This way you will always have full control of which dependencies you want the customer to use with your JAR so they don’t go and muck things up by using an obsolete version.I really look forward to seeing Liferay provide Maven dependencies for EE customers as well in a future release. Por favor identifíquese para votar. Contestar como... Cancelar
Behrang Saeedzadeh Mika Koivisto Hace 14 años Thank you Mika! Por favor identifíquese para votar. Contestar como... Cancelar
Brian Ko Mika Koivisto Hace 13 años Hi Mika,In step 4, I need to install the Liferay maven plugins and archetypes go into support-maven folder and run "mvn install".But where is the folder? Is it created by one of those 3 ant command before step 4? Thank you.Brian Por favor identifíquese para votar. Contestar como... Cancelar Louis Sacco Brian Ko Hace 13 años There's no doubt this certainly is going in the right directio, but suppose you create any type of plugin and you check your code into SVN which will trigger a CI build on your build servers. These build servers will not have any knowledge of Liferay dependencies nor will they allow us to install Liferay on the servers to satisfy those dependencies (if you were to use ANT). This is where Maven comes into the picture nicely. The idea would be that I could create a POM file for my plugin and define a set of dependencies that Liferay maintains in their Maven repository. Some attention would be needed to define which dependencies would be for EE customers too. From there, our build server would build based on the POM and pull down the Maven dependencies to satisfy the requirements for a successful build. Finally, we could then deploy the resulting build artifact (Liferay plugin WAR) to our internal Maven repository for our INFRA team to deploy to the various environments we have. As per Maven’s design we could deploy as a SNAPSHOT build for our DEV/TEST environment and then a Release build with a release number for PROD deployments. As an example, a POM may define a Liferay dependency as follows like you show above: <dependencies> <dependency> <groupId>com.liferay</groupId> <artifactId>portal-service</artifactId> <version>6.0.5</version> </dependency> ... </dependencies>We would then define a repository for the Liferay dependencies where we could retrieve this dependency: <repository> <id>Liferay</id> <name>Liferay Repsitory</name> <url>http://repository.liferay.com/maven2</url> </repository>Finally, in your repository, you could establish the transitive dependencies you require (i.e., the ones needed to compile your jar) in your .pom file that will be hosted in the repository so that when someone pulls the Liferay jar it will also pull those dependencies as well. As an example, see the Spring pom from Maven repo that illustrates how they require commons-logging, commons-collections and others. This way you will always have full control of which dependencies you want the customer to use with your JAR so they don’t go and muck things up by using an obsolete version.I really look forward to seeing Liferay provide Maven dependencies for EE customers as well in a future release. Por favor identifíquese para votar. Contestar como... Cancelar
Louis Sacco Brian Ko Hace 13 años There's no doubt this certainly is going in the right directio, but suppose you create any type of plugin and you check your code into SVN which will trigger a CI build on your build servers. These build servers will not have any knowledge of Liferay dependencies nor will they allow us to install Liferay on the servers to satisfy those dependencies (if you were to use ANT). This is where Maven comes into the picture nicely. The idea would be that I could create a POM file for my plugin and define a set of dependencies that Liferay maintains in their Maven repository. Some attention would be needed to define which dependencies would be for EE customers too. From there, our build server would build based on the POM and pull down the Maven dependencies to satisfy the requirements for a successful build. Finally, we could then deploy the resulting build artifact (Liferay plugin WAR) to our internal Maven repository for our INFRA team to deploy to the various environments we have. As per Maven’s design we could deploy as a SNAPSHOT build for our DEV/TEST environment and then a Release build with a release number for PROD deployments. As an example, a POM may define a Liferay dependency as follows like you show above: <dependencies> <dependency> <groupId>com.liferay</groupId> <artifactId>portal-service</artifactId> <version>6.0.5</version> </dependency> ... </dependencies>We would then define a repository for the Liferay dependencies where we could retrieve this dependency: <repository> <id>Liferay</id> <name>Liferay Repsitory</name> <url>http://repository.liferay.com/maven2</url> </repository>Finally, in your repository, you could establish the transitive dependencies you require (i.e., the ones needed to compile your jar) in your .pom file that will be hosted in the repository so that when someone pulls the Liferay jar it will also pull those dependencies as well. As an example, see the Spring pom from Maven repo that illustrates how they require commons-logging, commons-collections and others. This way you will always have full control of which dependencies you want the customer to use with your JAR so they don’t go and muck things up by using an obsolete version.I really look forward to seeing Liferay provide Maven dependencies for EE customers as well in a future release. Por favor identifíquese para votar. Contestar como... Cancelar
Wayne Lund Hace 14 años Is there a wiki page on this that we can edit now. I've been working through the blog but had a number of issues come up. got down to step #5 but have not been able to successfully deploy yet with maven. I got errors in the mvn archetype:generate that are hanging me up. Por favor identifíquese para votar. Contestar como... Cancelar Mika Koivisto Wayne Lund Hace 14 años If you have problems you can post to the message boards for help. Por favor identifíquese para votar. Contestar como... Cancelar
Mika Koivisto Wayne Lund Hace 14 años If you have problems you can post to the message boards for help. Por favor identifíquese para votar. Contestar como... Cancelar
Sven Ehlert Hace 14 años Thanks for the work, this is a first step for proper Maven support. I just checked the daily build, and the generated Liferay POMs are incomplete - internal portal dependencies are included, but all non-Liferay dependencies are missing. Will this be fixed before 6.0 GA? Por favor identifíquese para votar. Contestar como... Cancelar Mika Koivisto Sven Ehlert Hace 14 años Liferay artifacts are provided so that you can develop agains Liferay APIs and this should not require any non-Liferay libraries. If you are referring to portal-impl that is ONLY meant for maven plugins like ServiceBuilder plugin and that plugin will declare itself what it needs. Since we are not building Liferay with maven we won't do double maintenance on the dependencies as those are already mentioned in versions.xml and no one really should use portal-impl in their application anyway. If there is anything else that is actually needed and is missing let me know and I'll fix it. Por favor identifíquese para votar. Contestar como... Cancelar Sven Ehlert Mika Koivisto Hace 14 años Mika, thanks for the clarification. I can see why you don't want to do double dependency maintenance. However, what would indeed help developers if you could extend the build-maven.xml to build both the code jars and the java-source jars. The steps to create a source-jar are quite easy. First, create a jar with the plain source, then do something like this:mvn deploy:deploy-file -DgroupId=$GROUP_ID -DartifactId=$dir -Dversion=$VERSION -Dpackaging=java-source -Dfile=$dir/$dir-sources.jar -DrepositoryId=$REPOSITORY_ID -Durl=$URLThanks! Por favor identifíquese para votar. Contestar como... Cancelar
Mika Koivisto Sven Ehlert Hace 14 años Liferay artifacts are provided so that you can develop agains Liferay APIs and this should not require any non-Liferay libraries. If you are referring to portal-impl that is ONLY meant for maven plugins like ServiceBuilder plugin and that plugin will declare itself what it needs. Since we are not building Liferay with maven we won't do double maintenance on the dependencies as those are already mentioned in versions.xml and no one really should use portal-impl in their application anyway. If there is anything else that is actually needed and is missing let me know and I'll fix it. Por favor identifíquese para votar. Contestar como... Cancelar Sven Ehlert Mika Koivisto Hace 14 años Mika, thanks for the clarification. I can see why you don't want to do double dependency maintenance. However, what would indeed help developers if you could extend the build-maven.xml to build both the code jars and the java-source jars. The steps to create a source-jar are quite easy. First, create a jar with the plain source, then do something like this:mvn deploy:deploy-file -DgroupId=$GROUP_ID -DartifactId=$dir -Dversion=$VERSION -Dpackaging=java-source -Dfile=$dir/$dir-sources.jar -DrepositoryId=$REPOSITORY_ID -Durl=$URLThanks! Por favor identifíquese para votar. Contestar como... Cancelar
Sven Ehlert Mika Koivisto Hace 14 años Mika, thanks for the clarification. I can see why you don't want to do double dependency maintenance. However, what would indeed help developers if you could extend the build-maven.xml to build both the code jars and the java-source jars. The steps to create a source-jar are quite easy. First, create a jar with the plain source, then do something like this:mvn deploy:deploy-file -DgroupId=$GROUP_ID -DartifactId=$dir -Dversion=$VERSION -Dpackaging=java-source -Dfile=$dir/$dir-sources.jar -DrepositoryId=$REPOSITORY_ID -Durl=$URLThanks! Por favor identifíquese para votar. Contestar como... Cancelar
Bruno Vernay Hace 14 años I downloaded the sources from http://releases.liferay.com/portal/6.0.1/(By the way, it is very useful to be able to download the source tarbal from a web site !)The compilation went fine, but there are error due to the changing version number maven expect 6.0.0, but the repository contains version 6.0.1.I have no SVN access from work.Will the next version be 6.0.2 ? The http://releases.liferay.com/portal/ hasn't been updated since the 19/04/2010. Also it would be very nice to have the source tarbal in the "nightly" too and not just the war. Por favor identifíquese para votar. Contestar como... Cancelar Bruno Vernay Bruno Vernay Hace 14 años I changed 6.0.0 to 6.0.1 in all pom.xml in maven-support and it worked.I created a portlet with the archetype, configured the deploy property in the pom. It works great ! Por favor identifíquese para votar. Contestar como... Cancelar Ken Helmes Bruno Vernay Hace 13 años Nice, Mika. I took a look at the archetypes and there doesn't seem to be any maven support yet for the ext environment. Is that underway too? Por favor identifíquese para votar. Contestar como... Cancelar Juan Fernández Ken Helmes Hace 13 años Hi Ken: as the extension environment is moving to "extlets" (that are plugins in the end), that would be possible in a not-that-far future Por favor identifíquese para votar. Contestar como... Cancelar Mika Koivisto Ken Helmes Hace 13 años Ext support is planned for later. Por favor identifíquese para votar. Contestar como... Cancelar
Bruno Vernay Bruno Vernay Hace 14 años I changed 6.0.0 to 6.0.1 in all pom.xml in maven-support and it worked.I created a portlet with the archetype, configured the deploy property in the pom. It works great ! Por favor identifíquese para votar. Contestar como... Cancelar Ken Helmes Bruno Vernay Hace 13 años Nice, Mika. I took a look at the archetypes and there doesn't seem to be any maven support yet for the ext environment. Is that underway too? Por favor identifíquese para votar. Contestar como... Cancelar Juan Fernández Ken Helmes Hace 13 años Hi Ken: as the extension environment is moving to "extlets" (that are plugins in the end), that would be possible in a not-that-far future Por favor identifíquese para votar. Contestar como... Cancelar Mika Koivisto Ken Helmes Hace 13 años Ext support is planned for later. Por favor identifíquese para votar. Contestar como... Cancelar
Ken Helmes Bruno Vernay Hace 13 años Nice, Mika. I took a look at the archetypes and there doesn't seem to be any maven support yet for the ext environment. Is that underway too? Por favor identifíquese para votar. Contestar como... Cancelar Juan Fernández Ken Helmes Hace 13 años Hi Ken: as the extension environment is moving to "extlets" (that are plugins in the end), that would be possible in a not-that-far future Por favor identifíquese para votar. Contestar como... Cancelar Mika Koivisto Ken Helmes Hace 13 años Ext support is planned for later. Por favor identifíquese para votar. Contestar como... Cancelar
Juan Fernández Ken Helmes Hace 13 años Hi Ken: as the extension environment is moving to "extlets" (that are plugins in the end), that would be possible in a not-that-far future Por favor identifíquese para votar. Contestar como... Cancelar
Mika Koivisto Ken Helmes Hace 13 años Ext support is planned for later. Por favor identifíquese para votar. Contestar como... Cancelar
Juan Fernández Hace 13 años Added a wiki page with this info(http://www.liferay.com/community/wiki/-/wiki/Main/Liferay+Maven+SDK) Por favor identifíquese para votar. Contestar como... Cancelar
Robert McKinnon Hace 13 años Thank you for this blog and it is a relief to learn that the community is working on getting an integrated solution working with Maven. I went through the steps and there are a few things that I ran into:1.) I had to set the JAVA_HOME environment variable in order to get the following command to work “ant clean start jar”2.) I am currently fighting an issue where the liferay artifacts when deployed contain “${maven.version}”. For example: com/liferay/portal/portal-client/${maven.version}/portal-client-${maven.version}.jar. I am not sure how the maven.version variable gets set.In any event thank you for the maven integration. Por favor identifíquese para votar. Contestar como... Cancelar simeon mitev Robert McKinnon Hace 13 años The same issue here. When I setup manually the variable "maven.version" in my release.{$username}.properties its ok but then all artfacts get uploaded containing maven version ??? This should be the artifacts' version instead of maven's version, right? Por favor identifíquese para votar. Contestar como... Cancelar Baptiste Grenier simeon mitev Hace 13 años I was able to handle the ${maven.version} problem and some more problems, but I was stuck later... You can find the details (and a solution for the ${maven.version} problem in the following thread: http://www.liferay.com/community/forums/-/message_boards/message/5147190Regards,Baptiste Por favor identifíquese para votar. Contestar como... Cancelar
simeon mitev Robert McKinnon Hace 13 años The same issue here. When I setup manually the variable "maven.version" in my release.{$username}.properties its ok but then all artfacts get uploaded containing maven version ??? This should be the artifacts' version instead of maven's version, right? Por favor identifíquese para votar. Contestar como... Cancelar Baptiste Grenier simeon mitev Hace 13 años I was able to handle the ${maven.version} problem and some more problems, but I was stuck later... You can find the details (and a solution for the ${maven.version} problem in the following thread: http://www.liferay.com/community/forums/-/message_boards/message/5147190Regards,Baptiste Por favor identifíquese para votar. Contestar como... Cancelar
Baptiste Grenier simeon mitev Hace 13 años I was able to handle the ${maven.version} problem and some more problems, but I was stuck later... You can find the details (and a solution for the ${maven.version} problem in the following thread: http://www.liferay.com/community/forums/-/message_boards/message/5147190Regards,Baptiste Por favor identifíquese para votar. Contestar como... Cancelar
Sudhaker Raj Hace 13 años Any update on #6?Looking forward to have a painless way to create spring & jsf portlets:-)Thanks for great explanation. Por favor identifíquese para votar. Contestar como... Cancelar