ern-container-publisher-maven-cli
v1.0.0
Published
Electrode Native Maven CLI Container Publisher
Downloads
3
Maintainers
Readme
Electrode Native Maven CLI Container Publisher
This publisher can be used to publish Android or iOS Electrode Native Containers to a local or remote Maven repository, using the mvn
command.
This publisher is using the deploy:deploy-file Mojo of Maven. This means that this publisher can only publish a single file (.zip
or .jar
or any other single file).
Therefore, it cannot actually be used to publish a full Container project structure as such, but can be used to publish Container that have been transformed in some way (for example on iOS you nmight want to create a Fat Binary Container using a transformer, and publish the resulting zipped fat binary artifact to Maven).
Usage
With ern publish-container
CLI command
Required
--publisher/-p
:maven-cli
--platform
:android
|ios
--url/-u
: Url of the target maven repository to publish the container to (-Durl
ofmvn
command)--config/-c
: A json string (or path to a json file) containing the following properties:repositoryId
: The Maven repository id (-DrepositoryId
ofmvn
command)artifactId
: The Maven artifact id (-DartifactId
ofmvn
command)filePath
: ocal path to the file to publish. Can be either absolute or relative to Container root (-Dfile
ofmvn
command)groupId
: The Maven group id to be used for the Container (-DgroupId
ofmvn
command)versionSuffix
[Optional] : Suffix to append to the version (for example-SNAPSHOT
or-RELEASE
)mavenCliPath
[Optional] : Absolute path to the 'mvn' command. Can be used in case the 'mvn' binary is not in PATH or to use a 'mvn' binary other that the one in PATH.opts
[Optional]: Space delimited Maven CLI options to pass to the 'mvn' command. For example-X -e -q
.
Optional
--containerPath
: Path to the Container to publish.
Defaults to the Electrode Native default Container Generation path (~/.ern/containergen/out/[platform]
unless changed through config)--containerVersion/-v
: Version of the Container to publish.
Default to1.0.0
The ern publish-container
CLI command can be used as follow to manually publish a Container using the maven publisher :
$ ern publish-container --containerPath [pathToContainer] -p maven-cli -v [containerVersion] -u [mavenRepoUrl] -e '{"repositoryId":"[repositoryId]", "artifactId":"[artifactId]", "groupId":"[groupId], "filePath":"[filePath]"}'
Instead of passing the whole configuration on the command line for --extra/-e
, it is also possible to use a file path to a json file holding the configuration, or a path to a file stored in the Cauldron. Check out the ern publish-container command documentation for more info.
With Cauldron
Add to pipeline
{
"name": "ern-container-publisher-maven-cli",
"url": "[mavenRepoUrl]",
"extra": {
"artifactId": "[artifactId]",
"groupId" : "[groupIdVal]",
"repositoryId":"[repositoryId]",
"filePath":"[filePath]"
}
}
Programatically
import MavenCliPublisher from 'ern-container-publisher-maven-clis'
const publisher = new MavenCliPublisher()
publisher.publish(
{
/* Local file system path to the Container */
containerPath: string
/* Version of the Container. Maven artifact version */
containerVersion: string
/* Url of the maven repository. Default: maven local */
url?: string
/* Extra config specific to this publisher */
extra?: {
/**
* Maven repository id
*/
repositoryId: string
/**
* Maven group id
*/
groupId: string
/**
* Maven artifact id
*/
artifactId: string
/**
* Local path to the file to publish
* Can be either absolute or relative to Container root
*/
filePath: string
/**
* Suffix to append to the version
* For example '-SNAPSHOT' / '-RELEASE'
*/
versionSuffix?: string
/**
* Absolute path to the 'mvn' command
* Can be used in case the 'mvn' binary is not in PATH
* or to use a 'mvn' binary other that the one in PATH
*/
mavenCliPath?: string
/**
* Space delimited options to pass to the 'mvn' command
* For example '-X -e -q'
*/
opts?: string
}
}
})