Maven2

From Resin 3.0

(Difference between revisions)
Jump to: navigation, search
Line 22: Line 22:
 
     -DartifactId=my-webapp
 
     -DartifactId=my-webapp
 
</pre></code>
 
</pre></code>
 +
<li>Add the caucho release repository to my-webapp/pom.xml
 +
<code><pre>
 +
<project ...>
 +
  ...
 +
  <pluginRepositories>
 +
      <pluginRepository>
 +
        <id>caucho</id>
 +
        <name>Caucho</name>
 +
        <url>http://caucho.com/m2</url>
 +
      </pluginRepository>
 +
    </pluginRepositories>
 +
  ...
 +
</project> 
 +
</pre></code>
 +
<li>Add the resin plugin to my-webapp/pom.xml
 +
<code><pre>
 +
<project ...>
 +
  ...
 +
  <build>
 +
    <finalName>my-webapp</finalName>
 +
 +
      <plugins>
 +
<plugin>
 +
          <groupId>com.caucho</groupId>
 +
          <artifactId>resin-maven-plugin</artifactId>
 +
          <version>3.1.5</version>
 +
</plugin>
 +
      </plugins>
 +
  </build>
 +
</pre></code>
 +
<li>Compile and start resin with "mvn resin:run"
 +
<li>Browse http://localhost:8080/my-webapp
 
</ol>
 
</ol>
  

Revision as of 23:30, 14 February 2008

Resin 3.1 has a Maven2 snapshot repository at http://caucho.com/m2-snapshot

The Resin Maven plugin supports the following commands:

 mvn resin:run
 mvn resin:jspc

resin:run starts a Resin instance pointing to your build directory

resin:jspc compiles JSP files in the build directory

Contents

Step by Step

  1. install maven from http://maven.apache.org
  2. Create an empty .war project (see http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html)
    unix> mvn archetype:create \
        -DarchetypeGroupId=org.apache.maven.archetypes \
        -DarchetypeArtifactId=maven-archetype-webapp \
        -DgroupId=com.mycompany.app \
        -DartifactId=my-webapp
    
  3. Add the caucho release repository to my-webapp/pom.xml
    <project ...>
      ...
       <pluginRepositories>
          <pluginRepository>
            <id>caucho</id>
            <name>Caucho</name>
            <url>http://caucho.com/m2</url>
          </pluginRepository>
        </pluginRepositories>
      ...
    </project>  
    
  4. Add the resin plugin to my-webapp/pom.xml
    <project ...>
       ...
      <build>
        <finalName>my-webapp</finalName>
    
          <plugins>
    	<plugin>
              <groupId>com.caucho</groupId>
              <artifactId>resin-maven-plugin</artifactId>
              <version>3.1.5</version>
    	</plugin>
          </plugins>
      </build>
    
  5. Compile and start resin with "mvn resin:run"
  6. Browse http://localhost:8080/my-webapp

Pointing Resin to the build directory

Resin can point a web-app directly to the Maven build directory, letting you deploy automatically without involving any extra maven plugins. The resin.conf configuration looks like:

 <resin xmlns="http://caucho.com/ns/resin">
    ...
    <cluster id="">
      ...
      <host id="">
        ...
        <web-app id="my-webapp" 
                            root-directory="/home/ferg/maven/my-webapp/target/my-webapp"/>
        ...

You can also grab a generated .war file directly and have it expand into your own Resin workspace, by setting the 'archive-path' attribute of a <web-app> defined in the resin.conf:

  <resin ...
      ...
      <host id="">
      ...
         <web-app id="/my-webapp" root-directory="my-webapp-dir"
                             archive-path="/home/ferg/maven/my-webapp/target/my-webapp.war"/>
      ...

Adding Resin plugin to pom.xml

To add Resin plugins to your maven build, modify the pom.xml as follows:

 <project ...>
   ...
 
    <pluginRepositories>
      <pluginRepository>
        <id>caucho-snap</id>
        <name>Caucho Snapshots</name>
        <url>http://caucho.com/m2-snapshot</url>
      </pluginRepository>
    </pluginRepositories>
 
   ...
 
    <build>
      ...
      <plugins>
        <plugin>
          <groupId>com.caucho</groupId>
          <artifactId>resin-maven-plugin</artifactId>
          <version>3.1-SNAPSHOT</version>
        </plugin>
      </plugins>
 
    </build
 </project>

resin:run

On the command line, you can then use

 mvn resin:run

resin:run will start a new Resin instance based on your maven build area. You can then browse the instance directly to verify your code.

resin:jspc

The resin:jspc plugin will precompile any JSP files in your project, putting the compiled classes in the usual WEB-INF/work.

Personal tools