The goal of this patch is to be able to use tomcat:run from the top of the project without installing all artifacts first (definitely io/time saving :-) ) Note it works really well with maven3 as maven3 see build output directory of reactor modules.
So just touch something in a module and run (from the top) : mvn tomcat:run -Pdev and hit your browser to http://localhost:9091/archiva 2011/5/6 Brett Porter <[email protected]>: > > On 06/05/2011, at 12:42 AM, [email protected] wrote: > >> >> Modified: archiva/trunk/archiva-modules/archiva-web/archiva-applet/pom.xml >> URL: >> http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-applet/pom.xml?rev=1099827&r1=1099826&r2=1099827&view=diff >> ============================================================================== >> --- archiva/trunk/archiva-modules/archiva-web/archiva-applet/pom.xml >> (original) >> +++ archiva/trunk/archiva-modules/archiva-web/archiva-applet/pom.xml Thu May >> 5 14:42:00 2011 >> @@ -86,4 +86,26 @@ >> </plugin> >> </plugins> >> </build> >> + <profiles> >> + <profile> >> + <id>dev</id> >> + <build> >> + <plugins> >> + <plugin> >> + <groupId>org.apache.maven.plugins</groupId> >> + <artifactId>maven-jar-plugin</artifactId> >> + <executions> >> + <execution> >> + <id>jar-generate-for-dev</id> >> + <phase>compile</phase> >> + <goals> >> + <goal>jar</goal> >> + </goals> >> + </execution> >> + </executions> >> + </plugin> >> + </plugins> >> + </build> >> + </profile> >> + </profiles> >> </project> > > I'm unclear what this does? My bad didn't remove some tests > >> >> Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp/pom.xml >> URL: >> http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/pom.xml?rev=1099827&r1=1099826&r2=1099827&view=diff >> ============================================================================== >> --- archiva/trunk/archiva-modules/archiva-web/archiva-webapp/pom.xml >> (original) >> +++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp/pom.xml Thu May >> 5 14:42:00 2011 >> >> @@ -571,5 +598,118 @@ >> </plugins> >> </build> >> </profile> >> + <profile> >> + <!-- profile for tomcat plugin dev an log output in the console --> >> + <id>dev</id> >> + <build> >> + <plugins> >> + <plugin> >> + <artifactId>maven-antrun-plugin</artifactId> >> + <executions> >> + <execution> >> + <id>override-log4j-with-console-output</id> >> + <phase>process-resources</phase> >> + <goals> >> + <goal>run</goal> >> + </goals> >> + <configuration> >> + <tasks> >> + >> + <copy overwrite="true" >> file="${basedir}/src/test/resources/log4j.xml" >> todir="${basedir}/src/main/webapp/WEB-INF/classes" /> > > Does it have to be into the source tree? That's a bit gross :) yup need to svn:ignore ${basedir}/src/main/webapp/WEB-INF/classes but the below copy ${project.build.directory}/classes do the trick in fact > >> + >> + <copy overwrite="true" >> file="${basedir}/src/test/resources/log4j.xml" >> todir="${project.build.directory}/classes" /> >> + </tasks> >> + </configuration> >> + </execution> >> + </executions> >> + </plugin> >> + <plugin> >> + <groupId>org.apache.maven.plugins</groupId> >> + <artifactId>maven-dependency-plugin</artifactId> >> + <version>2.2</version> >> + <executions> >> + <execution> >> + <id>copy</id> >> + <phase>process-resources</phase> >> + <goals> >> + <goal>copy</goal> >> + </goals> >> + <configuration> >> + <skip>true</skip> >> + <artifactItems> >> + <artifactItem> >> + <groupId>${project.groupId}</groupId> >> + <artifactId>archiva-applet</artifactId> >> + <version>${project.version}</version> >> + <outputDirectory>src/main/webapp</outputDirectory> >> + <destFileName>archiva-applet.jar</destFileName> >> + </artifactItem> >> + </artifactItems> >> + </configuration> >> + </execution> > > Isn't this already done earlier? Note the <skip> here :-) Basically tomcat:run with the applet won't work (when you run on the top). Because with maven3 the artifact is resolved to the buid.outputDirectory of the reactor module (so skip it ) > >> + <execution> >> + <id>unpack-redback-war</id> >> + <goals> >> + <goal>unpack</goal> >> + </goals> >> + <phase>compile</phase> >> + <configuration> >> + <artifactItems combine.self="override"> >> + <artifactItem> >> + <groupId>org.codehaus.redback</groupId> >> + <artifactId>redback-struts2-content</artifactId> >> + <version>${redback.version}</version> >> + <type>war</type> >> + <overWrite>false</overWrite> >> + >> <outputDirectory>${basedir}/src/main/webapp</outputDirectory> >> + <excludes>**/web.xml,lib</excludes> >> + </artifactItem> >> + </artifactItems> >> + </configuration> >> + </execution> >> + </executions> >> + </plugin> > > This doesn't work with the overlays? Note the combine.self="override" attribute. Because this execution in the default profile exclude : struts-security.xml (and it's needed here :-) ) > >> + >> + <!--plugin> >> + <groupId>org.apache.maven.plugins</groupId> >> + <artifactId>maven-resources-plugin</artifactId> >> + <version>2.5</version> >> + <executions> >> + <execution> >> + <id>copy-redback-resources</id> >> + <phase>compile</phase> >> + <goals> >> + <goal>copy-resources</goal> >> + </goals> >> + <configuration> >> + >> <outputDirectory>${project.build.outputDirectory}</outputDirectory> >> + <resources> >> + <resource> >> + >> <directory>${basedir}/src/main/webapp/WEB-INF/classes</directory> >> + <filtering>false</filtering> >> + <includes> >> + <include>struts-security.xml</include> >> + </includes> >> + </resource> >> + </resources> >> + </configuration> >> + </execution> >> + </executions> >> + </plugin--> > > Meant to be here? my bad didn't remove a commented part. > >> + </plugins> >> + </build> >> + <dependencies> >> + <dependency> >> + <groupId>org.apache.archiva</groupId> >> + <artifactId>metadata-store-file</artifactId> >> + <version>${project.version}</version> >> + </dependency> >> + <dependency> >> + <groupId>org.codehaus.redback</groupId> >> + <artifactId>redback-struts2-integration</artifactId> >> + <version>${redback.version}</version> >> + </dependency> >> + </dependencies> >> + </profile> > > Aren't these already declared earlier? >> >> >> Added: >> archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/tomcat/tomcat-context-archiva.xml >> URL: >> http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/tomcat/tomcat-context-archiva.xml?rev=1099827&view=auto >> ============================================================================== >> --- >> archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/tomcat/tomcat-context-archiva.xml >> (added) >> +++ >> archiva/trunk/archiva-modules/archiva-web/archiva-webapp/src/test/tomcat/tomcat-context-archiva.xml >> Thu May 5 14:42:00 2011 >> @@ -0,0 +1,37 @@ >> +<?xml version="1.0" encoding="UTF-8"?> >> +<!-- >> + ~ Licensed to the Apache Software Foundation (ASF) under one >> + ~ or more contributor license agreements. See the NOTICE file >> + ~ distributed with this work for additional information >> + ~ regarding copyright ownership. The ASF licenses this file >> + ~ to you under the Apache License, Version 2.0 (the >> + ~ "License"); you may not use this file except in compliance >> + ~ with the License. You may obtain a copy of the License at >> + ~ >> + ~ http://www.apache.org/licenses/LICENSE-2.0 >> + ~ >> + ~ Unless required by applicable law or agreed to in writing, >> + ~ software distributed under the License is distributed on an >> + ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY >> + ~ KIND, either express or implied. See the License for the >> + ~ specific language governing permissions and limitations >> + ~ under the License. >> + --> >> + <Context path="/continuum"> >> + <Resource name="jdbc/users" auth="Container" type="javax.sql.DataSource" >> + username="sa" >> + password="" >> + driverClassName="org.apache.derby.jdbc.EmbeddedDriver" >> + >> url="jdbc:derby:${catalina.base}/target/database/users;create=true" >> + /> >> + <Resource name="jdbc/continuum" auth="Container" >> type="javax.sql.DataSource" >> + username="sa" >> + password="" >> + driverClassName="org.apache.derby.jdbc.EmbeddedDriver" >> + >> url="jdbc:derby:${catalina.base}/target/database/continuum;create=true" >> + /> >> + <Resource name="mail/Session" auth="Container" >> + type="javax.mail.Session" >> + mail.smtp.host="localhost"/> >> + >> +</Context> > > jdbc/continuum isn't needed :) dohh > > - Brett > > -- > Brett Porter > [email protected] > http://brettporter.wordpress.com/ > http://au.linkedin.com/in/brettporter > > > > > -- Olivier Lamy http://twitter.com/olamy http://www.linkedin.com/in/olamy
