Code Monkey home page Code Monkey logo

struts-archetypes's Introduction

Struts 2 Maven Archetypes

Struts 2 provides several Maven archetypes that create a starting point for our own applications.

Quickstart

A recommended way to start with Struts2 archetypes is to use archetype:generate goal with filter parameter.

mvn archetype:generate -Dfilter=org.apache:struts

Available Archetypes

The Blank Convention Archetype (struts2-archetype-convention)

Features

  • Convention-based validation

  • Example actions

  • Package-level resource bundle

  • Unit-testing

  • Google AppEgine aware

mvn archetype:generate -B -DgroupId=com.mycompany.mysystem \
							-DartifactId=myWebApp \
							-DarchetypeGroupId=org.apache.struts \
							-DarchetypeArtifactId=struts2-archetype-convention

The Blank Archetype (struts2-archetype-blank)

The Struts 2 Blank Archetype (“blank-archetype”) provides a minimal, but complete, Struts 2 application. It demonstrates some of the most basic Struts 2 concepts.

mvn archetype:generate -B -DgroupId=com.mycompany.mysystem \
							-DartifactId=myWebApp \
							-DarchetypeGroupId=org.apache.struts \
							-DarchetypeArtifactId=struts2-archetype-blank

The Starter Archetype (struts2-archetype-starter)

The Starter archetype creates a more featured application using several common technologies used in production applications.

Features

  • Sitemesh integration

  • Action example (instantiated both through Spring and Struts)

  • Spring integration

  • Validation example (action and action-alias level)

  • Conversion example (global and action level)

  • Resource bundle (both global, action and package level)

mvn archetype:generate -B -DgroupId=com.mycompany.mysystem \
							-DartifactId=myWebApp \
							-DarchetypeGroupId=org.apache.struts \
							-DarchetypeArtifactId=struts2-archetype-starter

The AngularJS Archetype (struts2-archetype-angularjs)

Features

  • Convention-based Action Configuration

  • Example actions with JSON Result

  • Example for AngularJS and Struts2 Integration

mvn archetype:generate -B -DgroupId=com.mycompany.mysystem \
							-DartifactId=myWebApp \
							-DarchetypeGroupId=org.apache.struts \
							-DarchetypeArtifactId=struts2-archetype-angularjs

The Portlet Blank Archetype (struts2-archetype-portlet)

The Portlet blank archetype creates a minimally populated JSR 168 portlet.

Features

  • View, Edit, and Help mode examples

  • Simple form for preferences in Edit mode

  • Can be deployed as a servlet or portlet application

  • Can use Maven Jetty plugin to deploy with the pluto-embedded profile (usage 'mvn jetty:run -Ppluto-embedded', then access http://localhost:8080/<artifactId>/pluto/index.jsp)

mvn archetype:generate -B -DgroupId=com.mycompany.mysystem \
							-DartifactId=myWebApp \
							-DarchetypeGroupId=org.apache.struts \
							-DarchetypeArtifactId=struts2-archetype-portlet

The Portlet Database Archetype (struts2-archetype-dbportlet)

The Portlet database archetype creates a simple JSR 168 portlet that displays the contents of a database table.

Features

  • Uses Spring and Hsql to show a real database query

  • Builtin caching of query results

  • View, Edit, and Help mode examples

  • Simple form for preferences in Edit mode

  • Can be deployed as a servlet or portlet application

  • Can use Maven Jetty plugin to deploy as a servlet webapp

mvn archetype:generate -B -DgroupId=com.mycompany.mysystem \
							-DartifactId=myWebApp \
							-DarchetypeGroupId=org.apache.struts \
							-DarchetypeArtifactId=struts2-archetype-dbportlet

The Plugin Archetype (struts2-archetype-plugin)

Features

  • Example new result type

  • Example XML-based configuration

mvn archetype:generate -B -DgroupId=com.mycompany.mysystem \
							-DartifactId=myPlugin \
							-DarchetypeGroupId=org.apache.struts \
							-DarchetypeArtifactId=struts2-archetype-plugin

Creating an Application Using a Maven Archetype

Run the following command from your new project's parent directory. The project will be created in a sub-directory named after the artifactId parameter.

The first two parameters, groupId and artifactId, should be set according to your needs:

  • groupId This should be the root package of your application, e.g., com.mycompany.myapp.

  • artifactId Names the project directory that will be created in the current directory.

mvn archetype:generate -B \
                       -DgroupId=tutorial \
                       -DartifactId=tutorial \
                       -DarchetypeGroupId=org.apache.struts \
                       -DarchetypeArtifactId=struts2-archetype-blank

Staging repository

If the above command will fail because of missing archetypes in central repository, you can try to use staging repository.

Add staging repository to your settings.xml

<settings>
  <profiles>
    <profile>
      <id>staging</id>
      <repositories>
        <repository>
          <id>archetype</id>
          <url>https://repository.apache.org/content/repositories/snapshots/</url>
          <releases>
            <enabled>true</enabled>
            <checksumPolicy>fail</checksumPolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <checksumPolicy>warn</checksumPolicy>
          </snapshots>
        </repository>
      </repositories>
    </profile>
  </profiles>
</settings>

Use staging profile in the command.

mvn archetype:generate -B \
                       -DgroupId=tutorial \
                       -DartifactId=tutorial \
                       -DarchetypeGroupId=org.apache.struts \
                       -DarchetypeArtifactId=struts2-archetype-blank \
                       -Pstaging

Archetype Parameters

The -B option runs archetype:generate in batch mode; it avoids a prompt to confirm our settings.

Parameter Description
groupId The id for the group the application belongs to. Usually is the root package for applications in your company, e.g. com.mycompany
artifactId The id for the project. The project will be created a sub-directory named after this parameter.
archetypeGroupId The group id of the archetype. Will always be org.apache.struts for Struts archetypes
archetypeArtifactId The id of the archetype

Command Quick Reference

These commands are used from the directory created by the archetype plugin (the project's sub-directory that was created in the previous step).

  • To install
   mvn install
  • To run test cases
   mvn test
  • To clean up (removes generated artifacts)
   mvn clean
  • To package (creates a WAR file)
   mvn package
  • To grab necessary JAR files etc.
   mvn initialize
  • To run it with Jetty
   mvn jetty:run

struts-archetypes's People

Contributors

aleksandr-m avatar dependabot[bot] avatar jcgh4164838gh792c124b5 avatar lukaszlenart avatar yasserzamani avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.