Can you link to a sample project reproducing the issue? On Thu, Aug 10, 2017 at 8:55 AM, Thorsten Heit <thorsten.h...@vkb.de> wrote:
> Hi, > > once again I'm having troubles with shared resources I'm using in a WAR > project. The basic structure is: > > - mvn-p1-resources > ... > - mvn-pn-resources > - app-main > +- app-jar > +- app-war > +- app-jar > +- mvn-p1-resourcse > +- ... > \- mvn-pn-resources > +- app-ear > > > The projects mvn-p*-resources use packaging type "jar" and contain > resource files such as HTML files, CSS, XSL,JavaScripts etc., and are added > as provided dependencies in the WAR project. The WAR module ifself uses > overlays to package them into the correct place inside the generated WAR; > see below in the mail I'm replying to how I'm actually doing this. > > Building the EAR from the command line works; everything is in the correct > place as expected. When I add the EAR in Eclipse to a server such as > Wildfly the application doesn't start correctly because of missing > resources. So far I've tracked down the issues to the following behaviour: > > - Delete mvn-p1...n-resources from my workspace > - Re-Checkout the project from Subversion > - Open the WAR project's properties dialog, have a look into the > deployment assembly dialog page > - For all deleted and re-added projects mvn-pX-resources the dialog page > shows a warning message > "Cannot find entry: "mvn-pX-resources" > > Right-clicking on the projects and executing Maven->Update Project... > doesn't have any effect; the warning messages remain, and the application > doesn't start correctly. > > I can manually fix this by right-clicking on mvn-pX-resources, execute > Configure -> Convert to Faceted Form... and select the checkbox by "Utility > Module" in the dialog. This is puzzling me because according to the docs > ([1]) m2e-wtp has support for jar dependency projects and should add the > Java and Utility Facets to them. > > At least for "normal" jar module dependencies (i.e. dependencies that > contain Java code) this works as expected. I can only imagine that m2e-wtp > (?) treats provided dependencies different than direct or transitive used > ones...? > > Any hints what is causing this behaviour? > > > > > - Eclipse Oxygen (20170620-1800) > - m2e 1.8.1.20170728-1531 > - m2e-wtp 1.3.2.20170517-2015 > together with the m2e-wtp JAX-RS, JPA and JSF configurators for WTP > (same version) > - Oracle JDK 8u141 > - Windows 8.1 x64 > > > [1] https://wiki.eclipse.org/M2E-WTP > > > Regards > > Thorsten > > > > > > > Von: "Thorsten Heit" <thorsten.h...@vkb.de> > > An: Maven Integration for Eclipse users mailing list < > m2e-users@eclipse.org> > > Datum: 18.04.2017 15:37 > > Betreff: Re: [m2e-users] m2e-wtp, war overlays and shared resources > > Gesendet von: m2e-users-boun...@eclipse.org > > > > Hi, > > > > referencing an older thread of mine... > > > > I'm having problems with m2e-wtp on a multi-module project that produces > > a few EARs with WARs that use overlays: Deploying such a WAR on Tomcat 8. > > 5.x or the corresponding EAR to Wildfly 10.1 is unsuccessful, the > > application doesn't start correctly because of missing resources in the > > WAR's WEB-INF folder. > > > > Basic structure of my project: > > > > app-main > > +- app-form-resources > > +- app-xsl-resources > > +- app-jar > > +- mvn-p1 > > +- mvn-p2 > > +- ... > > \- mvn-pn > > +- app-war > > +- app-jar > > +- mvn-p1-resources > > +- mvn-p2-resources > > +- ... > > \- mvn-pn-resources > > +- app-ear > > \- app-war > > > > The other mentioned WARs and EARs are basically the same as app-war/app- > > ear, but with a few customized files under WEB-INF. Anyway. > > > > P1...n are legacy projects in our Subversion repository containing both > > Java sources and resource files (JavaScript, HTML, XML, XSL etc.) and are > > used in other applications built in our department. So far I have created > > a Maven-compatible "layer" for each of these projects and factored out > > Java files and resources: > > * mvn-pX contains only the Java sources from project X (under > src/main/java) > > * mvn-pX-resources contains the legacy project's resources (directly > > under src/main/resources) > > > > The same holds for app-form-resources and app-xsl-resources: two projects > > that contain resources from the legacy project for which I'm building the > > Maven layer. > > > > All resource projects are of type "jar" and used as dependency with scope > > "provided" in app-war: > > > > <dependency> > > <groupId>mygroup</groupId> > > <artifactId>mvn-p1-resources</artifactId> > > <version>...</version> > > <scope>provided</scope> > > </dependency> > > > > To put the resources in the correct place I'm using overlays: > > > > <plugin> > > <groupId>org.apache.maven.plugins</groupId> > > <artifactId>maven-war-plugin</artifactId> > > <version>3.0.0</version> > > <configuration> > > <filteringDeploymentDescriptors>true</ > > filteringDeploymentDescriptors> > > > > <overlays> > > <overlay> > > <groupId>${project.groupId}</groupId> > > <artifactId>app-xsl-resources</artifactId> > > > <type>jar</type> > > <targetPath>/WEB-INF/xsl</targetPath> > > </overlay> > > <overlay> > > <groupId>${project.groupId}</groupId> > > <artifactId>app-form-resources</artifactId> > > > <type>jar</type> > > <targetPath>/form</targetPath> > > </overlay> > > > > <overlay> > > <groupId>group1</groupId> > > <artifactId>mvn-p1-resources</artifactId> > > > <type>jar</type> > > <targetPath>/</targetPath> > > <includes> > > <include>**/*.css</include> > > <include>**/*.js</include> > > </includes> > > </overlay> > > <overlay> > > <groupId>group1</groupId> > > <artifactId>mvn-p1-resources</artifactId> > > > <type>jar</type> > > <targetPath>/WEB-INF</targetPath> > > <includes> > > <include>**/*.x*</include> > > <include>**/*.js</include> > > </includes> > > </overlay> > > > > <overlay> > > <groupId>group2</groupId> > > <artifactId>mvn-p2-resources</artifactId> > > > <type>jar</type> > > <targetPath>/form</targetPath> > > <includes> > > <include>**/*.css</include> > > <include>**/*.js</include> > > </includes> > > </overlay> > > > > <overlay> > > <groupId>group3</groupId> > > <artifactId>mvn-p3-resources</artifactId> > > > <type>jar</type> > > <targetPath>/form</targetPath> > > <includes> > > <include>**/*.js</include> > > </includes> > > </overlay> > > <overlay> > > <groupId>group3</groupId> > > <artifactId>mvn-p3-resources</artifactId> > > > <type>jar</type> > > <targetPath>/WEB-INF/xsl</targetPath> > > <excludes> > > <exclude>**/*.js</exclude> > > <exclude>META-INF/**</exclude> > > </excludes> > > </overlay> > > > > ... > > </overlays> > > </configuration> > > </plugin> > > > > > > My problem is that the EAR builds successfully on the command line and > > contains all specified resources in their correct place, but with WTP / > > m2e-wtp problems arise: > > > > * Deploying app-war to Tomcat or app-ear to Wildfly doesn't work; the > > resources from app-form-resources, app-xsl-resources and mvn-p1...3- > > resources are completely missing > > * When I right-click in the package explorer view on app-war and open the > > properties, I see a few warnings in the deployment assembly dialog page: > > Cannot find entry: app-form-resources > > The same warning entry for app-xsl-resources and mvn-p1...3-resources > > Other referenced (resource) projects are correctly listed without > > errors/warnings. > > * Starting app-ear in Wildfly and having a look in the folder <wildfly- > > home>/standalone/deployments you can see that all other resource projects > > are correctly contained/deployed. > > > > All resource projects have the same structure and basically differ only > > in their GAV coordinates and referenced resource files. > > Changing the order of the overlay entries doesn't make any difference, > by the way. > > > > > > Do you have any idea what can cause this strange behaviour? > > > > > > Regards > > > > Thorsten > > > > > > > > m2e-users-boun...@eclipse.org schrieb am 26.02.2015 19:14:47: > > > > > Von: Fred Bricon <fbri...@gmail.com> > > > An: Maven Integration for Eclipse users mailing list < > m2e-users@eclipse.org> > > > Datum: 26.02.2015 19:15 > > > Betreff: Re: [m2e-users] m2e-wtp, war overlays and shared resources > > > Gesendet von: m2e-users-boun...@eclipse.org > > > > > > m2e-wtp currently doesn't support artifacts generated by > maven-assembly- > > > plugin within the workspace. i.e a workspace project cannot reference > a > > > zip classifier artifact matching another workspace project. > > > > > > You basically have 2 solutions : > > > - force the consumers to reference the zip file directly : either > disable > > > workspace resolution for projects consuming your zip (project > maven > > > > > disable worskpace resolution) or delete mvn-Q-resources from your > > > workspace. The big drawback of that approach is you'll have to execute > > > mvn install on mvn-Q-resources everytime a file changes > > > - change mvn-Q-resources type to jar. Move all your web resources to > src/ > > > main/resources and reference : > > > > > > <overlay> > > > <groupId>mygroup</groupId> > > > <artifactId>mvn-Q-resources</artifactId> > > > <type>jar</type> > > > <targetPath>/WEB-INF</targetPath> > > > <includes> > > > <include>/xsl/**</include> > > > </includes> > > > </overlay> > > > > > > That solution should allow you to keep working/deploying stuff > incrementally > > > > > > On Thu, Feb 26, 2015 at 11:25 AM, Thorsten Heit <thorsten.h...@vkb.de> > wrote: > > > Hi, > > > > > > I'm in the process of creating Maven builds for a few applications. > These > > > applications use Ant build scripts to create WAR and EAR files. > > > > > > > > > Initial situation: > > > > > > * All source code is stored in our Subversion repository. > > > * Each application depends on several internal projects P1, P2, ... > that > > > all have a non-Maven-like structure. > > > * Most, but not all of them not only contain Java code, but also web > > > resources (HTML, JavaScript, XSL, ...) that have to be placed directly > > > under "/" or under "/WEB-INF" in the resulting application WAR(s). > > > > > > > > > > > > Actual situation: > > > > > > * For each internal project P that contains only Java code I have > created > > > a new Maven project mvn-P using Maven conventions and directory > layout; > > > Java code is referenced under src/main/java via svn:externals. > > > * For each project Q that contains both Java sources and resource > files, > > > I have created two Maven projects mvn-Q and mvn-Q-resources; as above > > > Java code and resources are referenced via svn:externals. The mvn-Q- > > > resources project is of type pom and uses the assembly plugin to > create a > > > zip archive containing the resources; i.e. builds an artifact named > mvn- > > > Q-resources-<version>-zip.zip > > > > > > > > > For one of the WAR and EAR projects I created a multi-module Maven > > > project to build the same WAR and EAR via Maven as the legacy Ant > script. > > > The structure is basically the following: > > > > > > app-main > > > +- app-jar > > > +- mvn-p > > > \- mvn-q > > > +- app-war > > > +- app-jar > > > \- mvn-q-resources > > > +- app-ear > > > \- app-war > > > > > > > > > The app-war pom.xml contains the following: > > > > > > <plugins> > > > <plugin> > > > <groupId>org.apache.maven.plugins</groupId> > > > <artifactId>maven-war-plugin</artifactId> > > > <configuration> > > > <!-- web resources --> > > > <overlays> > > > <overlay> > > > <groupId>mygroup</groupId> > > > <artifactId>mvn-Q-resources</artifactId> > > > <type>zip</type> > > > <classifier>zip</classifier> > > > <targetPath>/WEB-INF</targetPath> > > > <includes> > > > <include>/xsl/**</include> > > > </includes> > > > </overlay> > > > ... > > > </overlays> > > > </configuration> > > > </plugin> > > > ... > > > </plugins> > > > > > > <dependencies> > > > <dependency> > > > <groupId>mygroup</groupId> > > > <artifactId>mvn-Q-resources</artifactId> > > > <version>1.0-SNAPSHOT</version> > > > <type>zip</type> > > > <classifier>zip</classifier> > > > <scope>runtime</scope> > > > </dependency> > > > ... > > > </dependencies> > > > > > > So far, this works pretty fine using command-line Maven. > > > > > > > > > > > > The problem: > > > > > > My Eclipse workspace contains all necessary projects, i.e. mvn-P, > mvn-Q, > > > mvn-Q-resources, app-main, app-jar, app-war and app-ear. In the server > > > view I created a new instance using a locally installed Tomcat. After > > > adding app-war to it I see all the project's jar dependencies in the > view. But: > > > Although I can start the server and debug in the referenced > dependencies, > > > the WAR application doesn't run correctly because the referenced > > > resources are not available, i.e. everything I added to m-war-p via > > > overlays/overlay. > > > > > > I'm using the following: > > > > > > * Eclipse Mars 4.5 (Build id: I20150203-1300) > > > * Java EE Developer Tools 3.7.0.v201501282120 > > > * m2e 1.6.0.20150220-1952 > > > * m2e-wtp 1.2.0.20150212-1712 > > > * Tomcat v8.0.20 > > > * Java 7u76 > > > > > > Do you have any hints on how to solve this? > > > Do I need to change something? > > > Is m-assembly-p the right way to create an archive containing > resources > > > that are shared between other applications? > > > > > > > > > > > > Regards > > > > > > Thorsten > > > _______________________________________________ > > > m2e-users mailing list > > > m2e-users@eclipse.org > > > To change your delivery options, retrieve your password, or > unsubscribe > > > from this list, visit > > > > https://dev.eclipse.org/mailman/listinfo/m2e-users > > > > > > > > > > > -- > > > "Have you tried turning it off and on again" - The IT Crowd > > > _______________________________________________ > > > m2e-users mailing list > > > m2e-users@eclipse.org > > > To change your delivery options, retrieve your password, or > unsubscribe > > > from this list, visit > > > > https://dev.eclipse.org/mailman/listinfo/m2e-users > > > _______________________________________________ > > m2e-users mailing list > > m2e-users@eclipse.org > > To change your delivery options, retrieve your password, or unsubscribe > > from this list, visit > > https://dev.eclipse.org/mailman/listinfo/m2e-users > > _______________________________________________ > m2e-users mailing list > m2e-users@eclipse.org > To change your delivery options, retrieve your password, or unsubscribe > from this list, visit > https://dev.eclipse.org/mailman/listinfo/m2e-users > -- "Have you tried turning it off and on again" - The IT Crowd And if that fails, then http://goo.gl/tnBgH5
_______________________________________________ m2e-users mailing list m2e-users@eclipse.org To change your delivery options, retrieve your password, or unsubscribe from this list, visit https://dev.eclipse.org/mailman/listinfo/m2e-users