[jira] (MEAR-60) Improve support for skinny war files
[ https://jira.codehaus.org/browse/MEAR-60?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=289261#comment-289261 ] Andreas Thaler commented on MEAR-60: I configured the outputFileNameMapping for the war-plugin like that: {code} org.apache.maven.plugins maven-war-plugin 2.1.1 @{artifactId}@-@{baseVersion}@.@{extension}@ {code} > Improve support for skinny war files > > > Key: MEAR-60 > URL: https://jira.codehaus.org/browse/MEAR-60 > Project: Maven 2.x Ear Plugin > Issue Type: Improvement >Affects Versions: 2.3 > Environment: mvn 2.0.5 >Reporter: Marcel Schutte >Assignee: Dennis Lundberg >Priority: Critical > Fix For: 2.7 > > Attachments: maven-ear-plugin-addon-1.0-SNAPSHOT.jar, > maven-ear-plugin-addon-1.0-SNAPSHOT-sources.jar, > maven-ear-plugin-MEAR-60.patch > > > Provide a boolean configuration option for webModules to include the war's > transitive dependencies. > As described on > http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html it > is very common in a J2EE environment to use so called skinny wars. Here the > war's WEB-INF/lib will not contain the dependent jars, but instead they are > packaged inside the EAR. The war references them through its > META-INF/MANIFEST.MF > This option could be used to avoid the 'painful part' mentioned in the above > web page. The war's dependencies wouldn't have to be duplicated alongside the > ear's. > I also found an old issue (MEAR-14) which has asked for the current default > behavior of not including the transitive dependencies. It suggests a property > to include specific dependencies of the war. As far as I can tell this has > never been implemented and this is also not what I am asking for. My proposal > is an all of nothing kind of option for each war module in the ear. > On a side note, for me this is the part where removal of the old maven 1 > style properties per dependency is missed the most. With them it was possible > to decide for each single dependency whether to put it in WEB-INF/lib or > reference it through the manifest classpath. But of course, then we didn't > have the transitive dependencies -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] (MEAR-60) Improve support for skinny war files
[ https://jira.codehaus.org/browse/MEAR-60?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=289096#comment-289096 ] Connor Barry commented on MEAR-60: -- Hi Andreas, I'm a little new to Maven internals but experiencing this exact problem as well. How did you configure your war plugin to use the non-timestamped version of the jar dependencies? I feel like that is a little cleaner than keeping the timestamp versions around in the EAR's APP-INF/lib folder. > Improve support for skinny war files > > > Key: MEAR-60 > URL: https://jira.codehaus.org/browse/MEAR-60 > Project: Maven 2.x Ear Plugin > Issue Type: Improvement >Affects Versions: 2.3 > Environment: mvn 2.0.5 >Reporter: Marcel Schutte >Assignee: Dennis Lundberg >Priority: Critical > Fix For: 2.7 > > Attachments: maven-ear-plugin-addon-1.0-SNAPSHOT.jar, > maven-ear-plugin-addon-1.0-SNAPSHOT-sources.jar, > maven-ear-plugin-MEAR-60.patch > > > Provide a boolean configuration option for webModules to include the war's > transitive dependencies. > As described on > http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html it > is very common in a J2EE environment to use so called skinny wars. Here the > war's WEB-INF/lib will not contain the dependent jars, but instead they are > packaged inside the EAR. The war references them through its > META-INF/MANIFEST.MF > This option could be used to avoid the 'painful part' mentioned in the above > web page. The war's dependencies wouldn't have to be duplicated alongside the > ear's. > I also found an old issue (MEAR-14) which has asked for the current default > behavior of not including the transitive dependencies. It suggests a property > to include specific dependencies of the war. As far as I can tell this has > never been implemented and this is also not what I am asking for. My proposal > is an all of nothing kind of option for each war module in the ear. > On a side note, for me this is the part where removal of the old maven 1 > style properties per dependency is missed the most. With them it was possible > to decide for each single dependency whether to put it in WEB-INF/lib or > reference it through the manifest classpath. But of course, then we didn't > have the transitive dependencies -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] (MEAR-60) Improve support for skinny war files
[ https://jira.codehaus.org/browse/MEAR-60?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=287731#comment-287731 ] Andreas Thaler commented on MEAR-60: Hi Dennis, Purpose of my fileNameMapper was not to remove the timestamped version from war, instead it configured the ear to use timestamped versions for the shared libs. Nevertheless I changed my code now by configuring the war plugin to use non-timestamped versions and now it works fine. I always avoided this approach as I have many war projects to configure contra one ear project, but it is ok. thanks for your support, am looking forward to the new release :) > Improve support for skinny war files > > > Key: MEAR-60 > URL: https://jira.codehaus.org/browse/MEAR-60 > Project: Maven 2.x Ear Plugin > Issue Type: Improvement >Affects Versions: 2.3 > Environment: mvn 2.0.5 >Reporter: Marcel Schutte >Assignee: Dennis Lundberg >Priority: Critical > Fix For: 2.7 > > Attachments: maven-ear-plugin-addon-1.0-SNAPSHOT.jar, > maven-ear-plugin-addon-1.0-SNAPSHOT-sources.jar, > maven-ear-plugin-MEAR-60.patch > > > Provide a boolean configuration option for webModules to include the war's > transitive dependencies. > As described on > http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html it > is very common in a J2EE environment to use so called skinny wars. Here the > war's WEB-INF/lib will not contain the dependent jars, but instead they are > packaged inside the EAR. The war references them through its > META-INF/MANIFEST.MF > This option could be used to avoid the 'painful part' mentioned in the above > web page. The war's dependencies wouldn't have to be duplicated alongside the > ear's. > I also found an old issue (MEAR-14) which has asked for the current default > behavior of not including the transitive dependencies. It suggests a property > to include specific dependencies of the war. As far as I can tell this has > never been implemented and this is also not what I am asking for. My proposal > is an all of nothing kind of option for each war module in the ear. > On a side note, for me this is the part where removal of the old maven 1 > style properties per dependency is missed the most. With them it was possible > to decide for each single dependency whether to put it in WEB-INF/lib or > reference it through the manifest classpath. But of course, then we didn't > have the transitive dependencies -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] (MEAR-60) Improve support for skinny war files
[ https://jira.codehaus.org/browse/MEAR-60?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Dennis Lundberg closed MEAR-60. --- Resolution: Fixed I'm closing this issue as fixed now. Andreas, if you manage to put together a reproducible example project for the versioning issue, please open a new issue for that. If we get a release out we can get more people to test this in the wild, and perhaps they can help us zoom in on the that issue. > Improve support for skinny war files > > > Key: MEAR-60 > URL: https://jira.codehaus.org/browse/MEAR-60 > Project: Maven 2.x Ear Plugin > Issue Type: Improvement >Affects Versions: 2.3 > Environment: mvn 2.0.5 >Reporter: Marcel Schutte >Assignee: Dennis Lundberg >Priority: Critical > Fix For: 2.7 > > Attachments: maven-ear-plugin-addon-1.0-SNAPSHOT.jar, > maven-ear-plugin-addon-1.0-SNAPSHOT-sources.jar, > maven-ear-plugin-MEAR-60.patch > > > Provide a boolean configuration option for webModules to include the war's > transitive dependencies. > As described on > http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html it > is very common in a J2EE environment to use so called skinny wars. Here the > war's WEB-INF/lib will not contain the dependent jars, but instead they are > packaged inside the EAR. The war references them through its > META-INF/MANIFEST.MF > This option could be used to avoid the 'painful part' mentioned in the above > web page. The war's dependencies wouldn't have to be duplicated alongside the > ear's. > I also found an old issue (MEAR-14) which has asked for the current default > behavior of not including the transitive dependencies. It suggests a property > to include specific dependencies of the war. As far as I can tell this has > never been implemented and this is also not what I am asking for. My proposal > is an all of nothing kind of option for each war module in the ear. > On a side note, for me this is the part where removal of the old maven 1 > style properties per dependency is missed the most. With them it was possible > to decide for each single dependency whether to put it in WEB-INF/lib or > reference it through the manifest classpath. But of course, then we didn't > have the transitive dependencies -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] (MEAR-60) Improve support for skinny war files
[ https://jira.codehaus.org/browse/MEAR-60?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=286306#comment-286306 ] Dennis Lundberg commented on MEAR-60: - Hi Andreas, I've done some more testing and have come to the following conclusions: * When you "mvn install" something into the local repo it will always be a -SNAPSHOT version * When you "mvn deploy" something it will depend on the settings of the repo and which version of Maven you use. Maven 3 will always deploy a timestamped version in the remote repo * I haven't been able to successfully remove a timestamped version from a WAR using your custom fileNameMapper. When I run my test project version and baseVersion are always the same It seems to me that it is the WAR plugin that is at fault here. It should IMO not include timestamped versions of JARs inside a WAR. > Improve support for skinny war files > > > Key: MEAR-60 > URL: https://jira.codehaus.org/browse/MEAR-60 > Project: Maven 2.x Ear Plugin > Issue Type: Improvement >Affects Versions: 2.3 > Environment: mvn 2.0.5 >Reporter: Marcel Schutte >Assignee: Dennis Lundberg >Priority: Critical > Fix For: 2.7 > > Attachments: maven-ear-plugin-addon-1.0-SNAPSHOT.jar, > maven-ear-plugin-addon-1.0-SNAPSHOT-sources.jar, > maven-ear-plugin-MEAR-60.patch > > > Provide a boolean configuration option for webModules to include the war's > transitive dependencies. > As described on > http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html it > is very common in a J2EE environment to use so called skinny wars. Here the > war's WEB-INF/lib will not contain the dependent jars, but instead they are > packaged inside the EAR. The war references them through its > META-INF/MANIFEST.MF > This option could be used to avoid the 'painful part' mentioned in the above > web page. The war's dependencies wouldn't have to be duplicated alongside the > ear's. > I also found an old issue (MEAR-14) which has asked for the current default > behavior of not including the transitive dependencies. It suggests a property > to include specific dependencies of the war. As far as I can tell this has > never been implemented and this is also not what I am asking for. My proposal > is an all of nothing kind of option for each war module in the ear. > On a side note, for me this is the part where removal of the old maven 1 > style properties per dependency is missed the most. With them it was possible > to decide for each single dependency whether to put it in WEB-INF/lib or > reference it through the manifest classpath. But of course, then we didn't > have the transitive dependencies -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] (MEAR-60) Improve support for skinny war files
[ https://jira.codehaus.org/browse/MEAR-60?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=285736#comment-285736 ] Andreas Thaler commented on MEAR-60: Hi Dennis, with my setup it is failing nearly always. It looks like this: Project myJar which contains classes needed by all my webapps and is of type jar. Project myWar1 using myJar and is of type war Project myWar2 using myJar and is of type war Project myEar of type ear using ear plugin for ear creation My workflow looks like this: Call "mvn install" on myJar. As a result the jar will be installed to the local repo. As the project has a snapshot version the timestamp version will be used as stated in docu: http://maven.apache.org/guides/introduction/introduction-to-the-pom.html#Available_Variables (Unfortunately I'm not able to reproduce it stable that a jar will be created in repo using timestamp :( ) Afterwards I'm calling mvn install on the war projects, as the result the wars get created having the timestamp based jars in lib folder. When you call mvn install on the ear project the jars will be placed also to the ear but using non-timestamp version and so they will not get removed from war. Key point here to reproduce it is to get a timestamp version of your jar project installed to the local repo. I'm using Maven 3.0.3 and java 1.7.01 on windows 7. War-plugin 2.1.1 I hope you can reproduce it, don't hesitate to ask further. Thanks in advance, Andreas > Improve support for skinny war files > > > Key: MEAR-60 > URL: https://jira.codehaus.org/browse/MEAR-60 > Project: Maven 2.x Ear Plugin > Issue Type: Improvement >Affects Versions: 2.3 > Environment: mvn 2.0.5 >Reporter: Marcel Schutte >Assignee: Dennis Lundberg >Priority: Critical > Fix For: 2.7 > > Attachments: maven-ear-plugin-addon-1.0-SNAPSHOT.jar, > maven-ear-plugin-addon-1.0-SNAPSHOT-sources.jar, > maven-ear-plugin-MEAR-60.patch > > > Provide a boolean configuration option for webModules to include the war's > transitive dependencies. > As described on > http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html it > is very common in a J2EE environment to use so called skinny wars. Here the > war's WEB-INF/lib will not contain the dependent jars, but instead they are > packaged inside the EAR. The war references them through its > META-INF/MANIFEST.MF > This option could be used to avoid the 'painful part' mentioned in the above > web page. The war's dependencies wouldn't have to be duplicated alongside the > ear's. > I also found an old issue (MEAR-14) which has asked for the current default > behavior of not including the transitive dependencies. It suggests a property > to include specific dependencies of the war. As far as I can tell this has > never been implemented and this is also not what I am asking for. My proposal > is an all of nothing kind of option for each war module in the ear. > On a side note, for me this is the part where removal of the old maven 1 > style properties per dependency is missed the most. With them it was possible > to decide for each single dependency whether to put it in WEB-INF/lib or > reference it through the manifest classpath. But of course, then we didn't > have the transitive dependencies -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] (MEAR-60) Improve support for skinny war files
[ https://jira.codehaus.org/browse/MEAR-60?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=285703#comment-285703 ] Dennis Lundberg commented on MEAR-60: - Thanks a lot Andreas. I'm still playing around with the code you sent. Trying to wrap my head around what, when and how things are happening the way they do. My current path forward is to include a new FileNameMapping implementation in the plugin, based on your code. I just need to understand the mechanics, to be able to find suitable names. Do you have any data on your environment when skinny wars does and does not work? Maven version, OS and WAR plugin version etc. > Improve support for skinny war files > > > Key: MEAR-60 > URL: https://jira.codehaus.org/browse/MEAR-60 > Project: Maven 2.x Ear Plugin > Issue Type: Improvement >Affects Versions: 2.3 > Environment: mvn 2.0.5 >Reporter: Marcel Schutte >Assignee: Dennis Lundberg >Priority: Critical > Fix For: 2.7 > > Attachments: maven-ear-plugin-addon-1.0-SNAPSHOT.jar, > maven-ear-plugin-addon-1.0-SNAPSHOT-sources.jar, > maven-ear-plugin-MEAR-60.patch > > > Provide a boolean configuration option for webModules to include the war's > transitive dependencies. > As described on > http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html it > is very common in a J2EE environment to use so called skinny wars. Here the > war's WEB-INF/lib will not contain the dependent jars, but instead they are > packaged inside the EAR. The war references them through its > META-INF/MANIFEST.MF > This option could be used to avoid the 'painful part' mentioned in the above > web page. The war's dependencies wouldn't have to be duplicated alongside the > ear's. > I also found an old issue (MEAR-14) which has asked for the current default > behavior of not including the transitive dependencies. It suggests a property > to include specific dependencies of the war. As far as I can tell this has > never been implemented and this is also not what I am asking for. My proposal > is an all of nothing kind of option for each war module in the ear. > On a side note, for me this is the part where removal of the old maven 1 > style properties per dependency is missed the most. With them it was possible > to decide for each single dependency whether to put it in WEB-INF/lib or > reference it through the manifest classpath. But of course, then we didn't > have the transitive dependencies -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://jira.codehaus.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira