Hi Ralph,

If you run the plugin with -X or -e then I think maven spits out the
classpaths so you can see what is happening with the system classpath.

An alternative is to use a feature I've just added to the plugin, which
is the ability to define name/value pairs that the plugin will set as
system properties. You could define the "log4j.configuration" property
to point to where your config file is.
Add these lines to the plugin's configuration:

               <systemProperties>
                 <systemProperty 
implementation="org.mortbay.jetty.plugin.SystemProperty">
                   <name>log4j.configuration</name>
                   
<value>${basedir}/src/jetty/resources/log4j.properties</value>
                 </systemProperty>
              </systemProperties>

You will need to use the latest snapshot version of the plugin to be able to use this feature. More instructions are at

http://jetty.mortbay.org/jetty6/maven-plugin/howto.html


regards
Jan


Ralph Pöllath wrote:
Hi,

The one thing that keeps me from using the jetty6 plugin instead of tomcat for development is the log4j configuration for my spring application.

As usual, the application expects log4j config in classpath:log4j.properties. For use with jetty, I need a different config file to be available at that location (log to console instead of files), so I dropped this into my POM:

<profiles>
    <profile>
        <id>jetty</id>
        <pluginRepositories ... />
        <build>
            <resources>
                <resource>
                    <!-- include config for use with jetty -->
                    <directory>src/jetty/resources</directory>
                    <includes>
                        <include>log4j.properties</include>
                    </includes>
                </resource>
                <resource>
                    <!-- exclude regulat config for use with tomcat -->
                    <directory>src/main/resources</directory>
                    <excludes>
                        <exclude>log4j.properties</exclude>
                    </excludes>
                </resource>
            </resources>

            <pluginManagement ... />
        </build>
        <dependencies ... oracle ... />
    </profile>
</profiles>

The exclude stuff seems to work, but src/jetty/resources/ log4j.properties doesn't seem to be placed on the classpath: Embedded error: Invalid 'log4jConfigLocation' parameter: class path resource [log4j.properties] cannot be resolved to URL because it does not exist

Jetty says
[INFO] Setting up classpath ...
:INFO:  Checking Resource aliases
[INFO] Finished setting up classpath

Is it possible to somehow display the classpath for inspection?

I thought of filtering web.xml to manipulate the expected filename, but I guess that won't work since the webapp directory is src/main/ webapp.

Thanks,
-Ralph.

On 03.11.2005, at 12:37, Jan Bartel wrote:

Hi Ralph,

I've linked the doco for the plugin onto the Jetty site. You can
go directly to it here:
http://jetty.mortbay.org/jetty6/maven-plugin/index.html

You can change where the plugin expects to find your webapp by
configuring the webAppSourceDirectory property.

Regarding the oracle jars, I'm not sure about this, but perhaps you could use the <dependencies> associated with the <plugin>
tag to get them onto the runtime classpath?

cheers
Jan


Ralph Pöllath wrote:

Hi,
I'm impressed! By following your instructions, I got jetty to run my webapp (using http://www.mortbay.org/maven2/snapshot as mentioned by Greg - the old url did not work anymore). Unfortunately, I didn't get very far because jetty doesn't know about my oracle drivers. With tomcat, I keep those in $ {catalina.base}/ common/lib. I guess I could add them as dependencies tom my project so they end up in WEB-INF/lib, but then I could not deploy the war to tomcat anymore. Sounds like I should have different maven profiles fot these scenarios? Or does jetty look for additional jars in some location? That would make it a lot easier.. I also noticed that jetty expects my webapp at ${dasedir}/src/ main/ webapp. Running mvn war:inplace works, but feels rather clumsy. I adds files to src that aren't sources, and I have to make sure I don't accidentally add them to svn.
Cheers,
-Ralph.
On 02.11.2005, at 19:31, Jan Bartel wrote:

Ralph,

Try putting the following in your pom.xml:

 <pluginRepositories>
   <pluginRepository>
     <id>mortbay-repo</id>
     <name>mortbay-repo</name>
     <url>http://www.mortbay.org/maven2</url>
   </pluginRepository>
 </pluginRepositories>

I should have the site doco for the plugin linked into the Jetty website in the next day. In the meanwhile, all you should need to do is to add these plugin config
lines to your pom.xml:

     <plugin>
       <groupId>org.mortbay.jetty</groupId>
       <artifactId>maven-jetty6-plugin</artifactId>
       <configuration>
         <scanIntervalSeconds>20</scanIntervalSeconds>
       </configuration>
     </plugin>

That will cause the plugin to keep running and scan for class/ lib changes every 20secs. You can change it to whatever you prefer. There are also a couple of other config options, but
that should get you going.

You can run it:
  mvn org.mortbay.jetty:maven-jetty6-plugin:1.0:run

You can shorten that to:
  mvn jetty6:run

but I'm not sure exactly how to do that other than as the plugin developer (I followed the instructions at http://maven.apache.org/maven2/guides/plugin/ guide- java-plugin-development.html).

Jason, is there any update on how we get the Jetty repository mirrored to the central
Maven2 repository?


cheers
Jan

Ralph Pöllath wrote:

On 02.11.2005, at 16:55, Jan Bartel wrote:

Ralph,

Just a suggestion: if you want to run your webapp without having to create a war first,
you could try the Jetty6 plugin. It is extremely lightweight, you
don't have to have any external config files for it, plus it will automatically hot-redeploy your webapp whenever you change any class files or dependencies. You can
get it from scpexe://jetty.mortbay.org/home/ftp/pub/maven2.


Hi,
sounds great, but I can't figure out what to do with scpexe:// jetty.mortbay.org/home/ftp/pub/maven2. I tried creating a pluginRepository in ~/.m2/settings.xml but can't get it to work.
Cheers,
-Ralph.

Ralph Pöllath wrote:

Hi,
I've successfully compiled and installed the tomcat plugin from svn, and tomcat:deploy works as expected. Now I'm wondering how to best use it. For development, I'd like to avoid zipping up the war file for each deployment. From gleaning at the source, I learned this means deploying in local mode. I guess I have to pass a parameter to the tomcat plugin, but I can't figure out the parameter's correct name (I know, this question is related to plugins in general, but I can't find the documentation).
I tried
$ mvn -Dorg.apache.maven.plugins.maven-tomcat- plugin.mode=local tomcat:deploy
and
$ mvn -Dorg.codehaus.mojo.tomcat.mode=local tomcat:deploy
but all I get is
[INFO] Deploying war remotely to /myProject on http:// localhost: 8080/ manager
which means I'm running in the default remote mode.
I also noticed there's a mode called inplace, that uses a context.xml file to deploy to tomcat, and requires the war plugin to run in exploded mode. What's the advantage of using inplace (I assume you get to use a path different from project.build.finalName?), and how do I configure the war plugin?
How does everyone else use the tomcat plugin?
Thanks,
-Ralph.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to