@@ -93,11 +93,26 @@ public class RpmMojo extends AbstractMojo
9393 private MavenProjectHelper projectHelper ;
9494
9595 /**
96- * The version string to process
96+ * Keeps the version information after the initial calculation.
97+ */
98+ private RpmVersion rpmVersion ;
99+
100+ /**
101+ * The version string to be processed in case of a release build
102+ *
103+ * @see #snapshotVersion
97104 */
98105 @ Parameter ( defaultValue = "${project.version}" )
99106 private String version ;
100107
108+ /**
109+ * The version string to be processed in case of a SNAPSHOT build
110+ *
111+ * @see #version
112+ */
113+ @ Parameter ( property = "rpm.snapshotVersion" )
114+ private String snapshotVersion ;
115+
101116 /**
102117 * The RPM package name
103118 */
@@ -532,7 +547,7 @@ public void setGenerateDefaultSourcePackage ( final boolean generateDefaultSourc
532547 * </p>
533548 */
534549 @ Parameter
535- private final List <SimpleDependency > enhances = new LinkedList <> ();;
550+ private final List <SimpleDependency > enhances = new LinkedList <> ();
536551
537552 /**
538553 * Weak backward dependency.
@@ -543,7 +558,7 @@ public void setGenerateDefaultSourcePackage ( final boolean generateDefaultSourc
543558 * </p>
544559 */
545560 @ Parameter
546- private final List <SimpleDependency > supplements = new LinkedList <> ();;
561+ private final List <SimpleDependency > supplements = new LinkedList <> ();
547562
548563 /**
549564 * Weak forward dependency.
@@ -554,7 +569,7 @@ public void setGenerateDefaultSourcePackage ( final boolean generateDefaultSourc
554569 * </p>
555570 */
556571 @ Parameter
557- private final List <SimpleDependency > recommends = new LinkedList <> ();;
572+ private final List <SimpleDependency > recommends = new LinkedList <> ();
558573
559574 /**
560575 * An optional signature descriptor for GPG signing the final RPM
@@ -847,7 +862,7 @@ private String makeTargetFilename ()
847862 private Path makeTargetFile ( final Path targetDir )
848863 {
849864 final String outputFileName = makeTargetFilename ();
850- final Path targetFile = targetDir .resolve ( outputFileName );;
865+ final Path targetFile = targetDir .resolve ( outputFileName );
851866 this .logger .debug ( "Resolved output file name - fileName: %s, fullName: %s" , this .outputFileName , targetFile );
852867 return targetFile ;
853868 }
@@ -903,7 +918,7 @@ private SignatureProcessor makeRsaSigner ( final Signature signature ) throws Mo
903918 @ FunctionalInterface
904919 private interface DependencyAdder
905920 {
906- public void add ( String name , String version , RpmDependencyFlags [] flags );
921+ void add ( String name , String version , RpmDependencyFlags [] flags );
907922 }
908923
909924 private void fillDependencies ( final RpmBuilder builder )
@@ -1147,7 +1162,7 @@ private void fillFromEntryCollect ( final BuilderContext ctx, final PackageEntry
11471162
11481163 RpmMojo .this .logger .debug ( "%s%s (dir)" , padding , dir );
11491164 final Path relative = from .relativize ( dir );
1150- final String targetName = makeUnix ( targetPrefix + relative . toString () );
1165+ final String targetName = makeUnix ( targetPrefix + relative );
11511166 RpmMojo .this .logger .debug ( "%s - target: %s" , padding , targetName );
11521167 ctx .addDirectory ( targetName , provider );
11531168 }
@@ -1231,11 +1246,21 @@ private String makePackageName ()
12311246
12321247 private RpmVersion makeVersion ()
12331248 {
1249+ if ( rpmVersion != null )
1250+ {
1251+ return rpmVersion ;
1252+ }
1253+
12341254 if ( !this .forceRelease && isSnapshotVersion () )
12351255 {
1236- this .logger .info ( "Building with SNAPSHOT version" );
1237- final String baseVersion = this .project .getVersion ().substring ( 0 , this .project .getVersion ().length () - SNAPSHOT_SUFFIX .length () );
1238- return new RpmVersion ( this .epoch , baseVersion , makeSnapshotReleaseString () );
1256+ if (this .snapshotVersion != null && !this .snapshotVersion .isEmpty ()) {
1257+ this .logger .info ("Building with SNAPSHOT version from <snapshotVersion> parameter: %s" , this .snapshotVersion );
1258+ return new RpmVersion (this .epoch , this .snapshotVersion , makeSnapshotReleaseString ());
1259+ }
1260+
1261+ final String baseVersion = this .project .getVersion ().substring (0 , this .project .getVersion ().length () - SNAPSHOT_SUFFIX .length ());
1262+ this .logger .info ("Building with SNAPSHOT version from project: %s" , baseVersion );
1263+ return new RpmVersion (this .epoch , baseVersion , makeSnapshotReleaseString ());
12391264 }
12401265 return new RpmVersion ( this .epoch , this .version , this .release );
12411266 }
@@ -1344,6 +1369,7 @@ private String makeHostname ()
13441369 }
13451370 catch ( final IOException e )
13461371 {
1372+ // ignore and try one of the following ways to detect the hostname
13471373 }
13481374
13491375 hostname = System .getenv ( "COMPUTERNAME" );
@@ -1373,7 +1399,7 @@ private String makeHostname ()
13731399 }
13741400 }
13751401
1376- private static interface StringSupplier extends Supplier <String >
1402+ private interface StringSupplier extends Supplier <String >
13771403 {
13781404 }
13791405
0 commit comments