LogoLogo
v7.0.0
v7.0.0
  • TotalCross Overview
  • TotalCross Javadoc
  • TotalCross Changelog
  • Roadmap
  • Documentation
    • Getting Started
      • First embedded project with TotalCross
    • Components
      • Accordion
      • Aligned Labels
      • Button
      • Check
      • ComboBox
      • Dynamic Scroll
      • Edit
      • Floating Button
      • Gpiod
      • Grid
      • GridContainer
      • Image
      • ImageControl
      • ImageList
      • Label
      • Material Icons
      • Material Window
      • MessageBox
      • Multi Edit
      • Progress Bar
      • Progress Box
      • Radio
      • Radio Group
      • Scroll Container
      • Side Menu
      • Slider
      • Sliding Window
      • Spin List
      • Spinner
      • Switch
      • Tabbed Container
      • Velocimeter
    • APIs
      • API Overview
      • API Rest
      • Asynchronous Task
      • Camera
      • Control
        • Main Window
        • Window
        • Container
      • GPS
      • HTTPS and SSL
      • JSON
      • Maps
        • Maps - Deprecated
        • Static Map
      • Material Design Standards
      • Ninepath
      • Notifications
      • PrinterManager
      • Push Notification Firebase
      • Scanner
      • SOAP
      • Socket
      • SocketServer
      • SQLite Encryption
      • QR Code Generator
      • totalcross.sys
      • Youtube API
    • Creating an Issue
    • Contributing
      • Branch workflow
      • Writing documentation
    • Guides
      • App Architecture
        • Suggested Architecture
        • Why do Design Patterns help with the application's organization?
          • MVC Architecture Pattern
          • Template Pattern
          • Data Persistence: DAO Pattern.
        • Separation of concepts: What is the best way to create UI interfaces?
        • Positioning
          • Manual Positioning
        • Relative Positioning
        • Best practices to improve project maintenance
      • Device Simulator
      • Package your app from scratch
        • TotalCross SDK
        • Environment Variables in IDE
          • Eclipse
          • IntelliJ
        • Deploy your app with a dependecy TC
        • Deploy iOS
          • Using Development certificate to test your apps
      • Understanding TotalCross for Linux ARM
      • Running C++ applications with TotalCross
      • Web Services
    • Miscelaneous
      • Java JDK 8
      • Maven
      • Installing Visual Studio Code
    • FAQ
      • IMEI in Android 10
Powered by GitBook
On this page
  • Requirements
  • Deploy
  • Your apps

Was this helpful?

  1. Documentation
  2. Guides

Package your app from scratch

PreviousDevice SimulatorNextTotalCross SDK

Last updated 5 years ago

Was this helpful?

Requirements

This guide is intended for devs who have gone through get started or have knowledge of:

  • ;

  • ;

  • .

Deploy

You can do deploy to Android, iOS e Windows with Maven or by Command Line

Pom File

Make sure your pom file has the build tag, dependencies tag, repositories tag and properties tag as shown below

<?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>com.totalcross</groupId>
    <artifactId>HelloWorld</artifactId>
    <version>1.0-SNAPSHOT</version>
    <name>HelloWorld</name>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <totalcross.activation_key>PLACE_YOUR_KEY</totalcross.activation_key>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.totalcross</groupId>
            <artifactId>totalcross-sdk</artifactId>
            <version>6.0.3</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>totalcross-repo</id>
            <name>ip-172-31-40-140-releases</name>
            <url>http://maven.totalcross.com/artifactory/repo1</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>totalcross-repo</id>
            <name>ip-172-31-40-140-releases</name>
            <url>http://maven.totalcross.com/artifactory/repo1</url>
        </pluginRepository>
    </pluginRepositories>

    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.totalcross</groupId>
                <artifactId>totalcross-maven-plugin</artifactId>
                <version>1.0</version>
                <configuration>
                    <name>${project.name}</name>
                    <platforms>
                        <platform>-win32</platform>
                        <platform>-android</platform>
                        <platform>-ios</platform>
                    </platforms>
                    <activationKey>${totalcross.activation_key}</activationKey>
                    <!--                    For version 4.4.2 and 5.1.4 or later, Apple certificates are no longer required. -->
                    <!--                    <certificates>${totalcross.applecertificate}</certificates>-->
                    <!--                    <totalcrossHome>/Users/italo/TotalCross5</totalcrossHome>-->
                </configuration>
                <executions>
                    <execution>
                        <id>post-package</id>
                        <phase>package</phase>
                        <goals>
                            <goal>package</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>

Inside the platfrom tag you can add the argument:

Argument for plataforms to deploy

  • <platform>-win32</platform>This platform is used to build for Windows;

  • <platform>-wince</platform>This platform is used to build for Windows CE;

  • <platform>-winmo</platform>This platform is used to build for Windows Mobile Only;

  • <platform>-linux</platform>This platform is used to build for Linux x86 (Debian);

  • <platform>-linux_arm</platform>This platform is used to build for Linux ARM;

  • <platform>-applet</platform>Create the html file and a jar file with all dependencies to run the app from a java-enabled browser (the input cannot be a jar file);

  • <platform>-ios</platform>This platform is used to build for IOS;

  • <platform>-android</platform>This platform is used to build for Android;

  • <platform>-all</platform>Single parameter to deploy to all supported platforms;

Options

  • <platform>/p</platfrom>Package the VM with the application;

  • <platform>/r</platform>Specify a registration key to be used to activate TotalCross when required;

  • <platform>/m</platform>Specifies a path to the mobileprovision and certificate store to deploy an ipa file for iOS;

  • <platform>/a</platform>Assigns the application id; can only be used for libraries or passing a .tcz file;

  • <platform>/autostart</platform>automatically starts the application after a boot is completed. Currently works for Android only;

  • <platform>/c</platform>Specify a command line to be passed to the application;

  • <platform>/i</platform>Install the file after generating it; platforms is a list of comma-separated platforms. Supports: android. E.G.: /i android;

  • <platform>/k</platform>Keep the .exe and other temporary files during wince generation;

  • <platform>/kn</platform>As /k, but does not create the cab files for WinCE;

  • <platform>/n</platform>Override the name of the tcz file with the given name;

  • <platform>/o</platform> Override the output folder with the given path (defaults to the current folder);

  • <platform>/t</platform>Just test the classes to see if there are any invalid references. Images are not converted, and nothing is written to disk;

  • <platform>/v</platform>Verbose output for information messages;

  • <platform>/w</platform>Waits for a key press if an error occurs;

  • <platform>/x</platform>Comma-separated list of class names that must be excluded (in a starts-with manner). E.G.: "/x com/framework/".

Build your app

To deploy your application you only need to use a maven execution template by passing the command:mvn package

To deploy by command line you need to be in the folder that contains the jar of your project and pass the parameters of tc.Deploy:

Argument for plataforms to deploy

  • -win32This argument is used to build for Windows;

  • -winceThis argument is used to build for Windows CE

  • -winmo This argument is used to build for Windows Mobile Only;

  • -linux This argument is used to build for Linux x86 (Debian);

  • -linux_arm This platform is used to build for Linux ARM;

  • -applet the html file and a jar file with all dependencies to run the app from a java-enabled browser (the input cannot be a jar file);

  • -iosThis argument is to build for iOS;

  • -androidThis argument is to build for Android;

  • -allSingle parameter to deploy to all supported platforms;

Options

  • /pPackage the VM with the application;

  • /rSpecify a registration key to be used to activate TotalCross when required;

  • /mSpecifies a path to the mobileprovision and certificate store to deploy an ipa file for iOS;

  • /aAssigns the application id; can only be used for libraries or passing a .tcz file;

  • /autostartautomatically starts the application after a boot is completed. Currently works for Android only;

  • /c Specify a command line to be passed to the application;

  • /iinstall the file after generating it; platforms is a list of comma-separated platforms. Supports: android. E.G.: /i android;

  • /kKeep the .exe and other temporary files during WinCE generation;

  • /knAs /k, but does not create the cab files for WinCE;

  • /n Override the name of the .tcz file with the given name;

  • /o Override the output folder with the given path (defaults to the current folder);

  • /t Just test the classes to see if there are any invalid references. Images are not converted, and nothing is written to disk;

  • /vVerbose output for information messages;

  • /w Waits for a key press if an error occurs;

  • /xComma-separated list of class names that must be excluded (in a starts-with manner). E.G.: "/x com/framework/".

See the example below

java -cp "%TOTALCROSS3_HOME%"/dist/totalcross-sdk.jar tc.Deploy HelloTC.jar -android /p /r YOUR_TC_KEY_HERE

"%TOTALCROSS3_HOME%" is the folder where the TC SDK

HelloTC.jar is the .jar of project

Your apps

After packaging your application the files will be in the project_folder\target\install\

Problems with WinCE? If your Operational System is not Windows or it is Windows and has not Cabwiz program, try to add/kas first platform to in your pom.xml

TotalCross SDK
Environment variables configured
JDK installed