Stratio's fork of the unix-maven-plugin from the Codehaus Mojo project.
used in every Stratio platform component.
This project forked from roclas/unix-maven-plugin
unix-maven-plugin on steroids
License: MIT License
Right now we're forcing deb compression to gzip (-Zgzip). Recent dpkg-deb versions use xz by default, but this is not supported by unix-maven-plugin yet.
When you define a copyFile section within the assembly tag you can't define another copyFile section within, for instance: tags
testBasic(com.stratio.mojo.unix.maven.zip.ZipPackageTest) Time elapsed: 0.127 sec <<< FAILURE!
junit.framework.AssertionFailedError: ./dirs/, timestamp expected:<2012-08-19T10:34:10.000> but was:<2012-08-19T10:34:10.157>
at junit.framework.Assert.fail(Assert.java:47)
at junit.framework.Assert.failNotEquals(Assert.java:280)
at junit.framework.Assert.assertEquals(Assert.java:64)
at com.stratio.mojo.unix.maven.zip.ZipPackageTest.assertDirectory(ZipPackageTest.java:148)
at com.stratio.mojo.unix.maven.zip.ZipPackageTest.testBasic(ZipPackageTest.java:131)
https://travis-ci.org/Stratio/unix-maven-plugin/jobs/46753865#L2107
File permissions doesn't seem to work properly. This has been previously reported at: trygvis#17
Currently package name is equal to the artifactId. However, we need more fine grained control and specify the exact package name.
This is required by Stratio Ingestion packaging.
https://jira.codehaus.org/browse/MUNIX-54
We will need this when we want to generate different packages for RedHat 6 and RedHat 7, etc.
You can't apply permission masks using the plugin you need to apply them within the post script.
Currently, deb generation fails when mapping -rc1 version.
http://docs.codehaus.org/display/MAVEN/Versioning
http://fedoraproject.org/wiki/Packaging%3aNamingGuidelines#NonNumericRelease
https://twiki.cern.ch/twiki/bin/view/Main/RPMAndDebVersioning
https://twiki.cern.ch/twiki/bin/view/Main/RPMAndDebVersioning
https://www.debian.org/doc/debian-policy/ch-controlfields.html
Here's the Maven to deb/rpm mappings to be used in unix-maven-plugin. In deb and rpm, the part after the last hyphen denotes the revision part. Timestamp for all examples is 20090423095107 (used for SNAPSHOT version mapping).
Notes on DEB: Revision for Debian will be always 1 unless explicitely set in pom.xml.
Notes on RPM: Revision for RedHat will be used to properly map post- and pre- releases following the Fedora Packaging guidelines. Recent RPM versions support the use of tilde (~
) with the same behaviour as in DEB. RHEL >=6 and Fedora support such behaviour. At the moment, we ignore this and implement a fully backwards-compatible behaviour. Optional support for tilde is left as a future issue.
maven | deb | rpm |
---|---|---|
1 | 1-1 | 1-1 |
1 rev: 3 | 1-3 | 1-3 |
1.5 | 1.5-1 | 1.5-1 |
1.0-1 rev: 3 | 1.0-1-3 | 1.0_1-3 |
1.0-1 | 1.0-1-1 | 1.0_1-1 |
1.0-rc1 | 1.0~rc1-1 | 1.0-0.1.rc1 |
1.0-alpha-1 | 1.0~alpha-1-1 | 1.0-0.1.alpha_1 |
1.0-SNAPSHOT | 1.0~20090423095107-1 | 1.0-0.1.20090423095107 |
1.0-rc1-SNAPSHOT | 1.0 |
1.0-0.1.rc1 1 |
1.0-SNAPSHOT rev: 3 | 1.0~20090423095107-3 | 1.0-0.1.20090423095107.3 |
At the moment, this plugin does not support all versioning schemes supported by Maven. Most notably, prerelease qualifiers (e.g. rc1, alpha1, b1) must be separated with a dash. Other notations (underscore, dot or no separator) are not supported.
Now the generated package get its name from the artifactd. It is essential to add a parameter which allow to set a custom name for the package.
Required packages binaries are:
In Ubuntu/Debian, package to be installed is RPM.
In RedHat/CentOS dpkg-deb and fakeroot must be installed.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.