You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@maven.apache.org by Jan Bartel <ja...@mortbay.com> on 2005/11/22 11:47:51 UTC
Re: [m2] Using the jetty6 plugin was: Using the tomcat plugin
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: dev-unsubscribe@maven.apache.org
For additional commands, e-mail: dev-help@maven.apache.org
Re: [m2] Using the jetty6 plugin was: Using the tomcat plugin
Posted by Ralph Pöllath <li...@poellath.org>.
Hi Jan,
I tried the systemProperties approach (see my previous post), but no
luck. Adding the implementation attribute (which isn't mentioned in
the howto BTW) didn't help either.
My plugin repository points to http://www.mortbay.org/maven2/
snapshot, so I assume I'm using the latest snaphot.
Thanks,
-Ralph.
On 22.11.2005, at 11:47, Jan Bartel wrote:
> 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: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
For additional commands, e-mail: users-help@maven.apache.org