Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Include Page
_This_Is_a_Draft
_This_Is_a_Draft

Table of Contents

From Archetype

Prerequisites

Generate ETLUnit Project from Archetype

Types of Projects of Interest

  • Schema project
  • ETLUnit project

Archetype Generation Steps

In a command window, navigate to the folder in which the project should reside.

Section
Column
width25px

 

Column
width1000
Code Block
languagebash
titleNavigate to new project location
userme@LO-PPBBKK55 /c
$ mkdir src/my_etlunit_proj
userme@LO-PPBBKK55 /c
$ cd src/my_etlunit_proj
userme@LO-PPBBKK55 /c/src/my_etlunit_proj
Column

 

Obtain a list of ETLUnit-related available archetypes from Maven Central.

Section
Column
width75px

 

Column
width1000px
Code Block
languagebash
titleExample of filtered list of available archetypes
$ mvn archetype:generate | grep bradleysmithllc
768: remote -> org.bitbucket.bradleysmithllc.etlunit:etlunit-database-schema-archetype (-)
769: remote -> org.bitbucket.bradleysmithllc.etlunit:etlunit-feature-archetype (-)
770: remote -> org.bitbucket.bradleysmithllc.etlunit:etlunit-project-archetype (-)
771: remote -> org.bitbucket.bradleysmithllc.etlunit:feature-archetype (-)
772: remote -> org.bitbucket.bradleysmithllc.etlunit:project-archetype (-)
Column

 

Press <Ctrl>-C to end the command.

Next, list ALL archetypes from which you can select the one you want.

Section
Column
width75px

 

Column
width1000px
Code Block
mvn archetype:generate
...
Choose a number or apply filter (format: [groupId:]artifactId, case sensitive contains): 582:
...
111: 3.5.0
112: 3.5.1
113: 3.6.0
114: 3.6.1
115: 3.7.0
116: 3.8.0
117: 3.8.1
118: 3.9.0
119: 3.9.1
120: 3.9.2
121: 3.9.3
122: 3.9.4
123: 3.9.5
124: 3.9.6
Choose a number: 
Column

 

After the mvn archetype:generate command, at each of the two prompts above, type in the appropriate answer.  The actual numbers will change as Maven Central adds more archetypes.

 

Below are some sample responses to the prompts that follow, to help project generation.  The colons indicate prompts.

Section
Column
width75px

 

Column
width1000px
Code Block
languagebash
titleSample answers to POM questions
Define value for property 'groupId': : org.userme.etlunit.samples
Define value for property 'artifactId': : isolate_fml_pkg
Define value for property 'version':  1.0-SNAPSHOT: : 1.0.0
Define value for property 'package':  org.userme.etlunit.samples: :
Confirm properties configuration:
groupId: org.userme.etlunit.samples
artifactId: isolate_fml_pkg
version: 1.0.0
package: org.userme.etlunit.samples
 Y: : Y <Enter>
[INFO] ----------------------------------------------------------------------------
[INFO] Using following parameters for creating project from Archetype: etlunit-project-archetype:3.9.6
[INFO] ----------------------------------------------------------------------------
[INFO] Parameter: groupId, Value: org.userme.etlunit.samples
[INFO] Parameter: artifactId, Value: isolate_fml_pkg
[INFO] Parameter: version, Value: 1.0.0
[INFO] Parameter: package, Value: org.userme.etlunit.samples
[INFO] Parameter: packageInPathFormat, Value: org/userme/etlunit/samples
[INFO] Parameter: package, Value: org.userme.etlunit.samples
[INFO] Parameter: version, Value: 1.0.0
[INFO] Parameter: groupId, Value: org.userme.etlunit.samples
[INFO] Parameter: artifactId, Value: isolate_fml_pkg
[INFO] project created from Archetype in dir: C:\src\my_etlunit_proj\isolate_fml_pkg
[INFO] ------------------------------------------------------------------------
Column

 

Your project has been generated.  There isn't much there yet.

Generated POM

Below is a sample of the Maven generated POM.

Section
Column
width25px

 

Column
width1000px
Code Block
languagexml
titlepom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.userme.etlunit.samples</groupId>
    <artifactId>isolate_fml_pkg</artifactId>
    <version>1.0.0</version>
    <packaging>jar</packaging>

    <name>isolate_fml_pkg</name>
    <url>http://org.userme.etlunit.samples</url>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <etlunit.project.version>3.9.6</etlunit.project.version>
    </properties>

    <repositories>
        <repository>
            <id>distrib-snapshots</id>
            <name>Snapshots</name>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </repository>
    </repositories>

    <dependencies>
        <dependency>
            <groupId>org.bitbucket.bradleysmithllc.etlunit</groupId>
            <artifactId>etlunit-core</artifactId>
            <version>${etlunit.project.version}</version>
        </dependency>
        <dependency>
            <groupId>org.bitbucket.bradleysmithllc.etlunit</groupId>
            <artifactId>etlunit-cli</artifactId>
            <version>${etlunit.project.version}</version>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.bitbucket.bradleysmithllc.etlunit</groupId>
                <artifactId>etlunit-maven</artifactId>
                <version>${etlunit.project.version}</version>
                <executions>
                    <execution>
                        <phase>test</phase>
                        <goals>
                            <goal>test</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.4</version>
                <executions>
                    <execution>
                        <id>copy-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>copy-dependencies</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/etlunit-lib</outputDirectory>
                            <overWriteReleases>false</overWriteReleases>
                            <overWriteSnapshots>false</overWriteSnapshots>
                            <overWriteIfNewer>true</overWriteIfNewer>
                        </configuration>
                    </execution>
                    <execution>
                        <id>unpack-dependencies</id>
                        <phase>package</phase>
                        <goals>
                            <goal>unpack</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.bitbucket.bradleysmithllc.etlunit</groupId>
                                    <artifactId>etlunit-cli</artifactId>
                                    <type>tar.gz</type>
                                    <version>${etlunit.project.version}</version>
                                    <overWrite>false</overWrite>
                                    <classifier>bin</classifier>
                                    <outputDirectory>${basedir}</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>
Column

 

 

Folder Structure

Following is an example of some basic the folder structures for your new project.

Section
Column
width75px

 

Column
width200px

 

 

Folders generated by archetype:generate

Image Added

Column
width250px

 

Basic layout before before addition of database

Image Added

Column
width250px

Basic layout after adding Informatica

EDW_EXTRACTS matches the name of an Informatica folder.

Image Added

Column
 

Push to Bitbucket

You can follow steps to setting up a Bitbucket repository for your project on the Bitbucket Create a Repository page.

You may also want to use a graphical user interface like SourceTree.