@Component(role=org.eclipse.tycho.buildversion.BuildTimestampProvider.class,
hint="jgit")
public class JGitBuildTimestampProvider
extends java.lang.Object
implements org.eclipse.tycho.buildversion.BuildTimestampProvider
git status
is not clean (i.e.
uncommitted changes are detected).
If uncommitted changes should be tolerated with a warning, configure
<jgit.dirtyWorkingTree>warning</jgit.dirtyWorkingTree>In this case, this timestamp provider will delegate to the default timestamp provider which uses the current build timestamp. For additional flexibility, some files can be ignored using gitignore patters specified in <jgit.ignore> element of tycho-packaging-plugin configuration block.
Typical usage
... <plugin> <groupId>org.eclipse.tycho</groupId> <artifactId>tycho-packaging-plugin</artifactId> <version>${tycho-version}</version> <dependencies> <dependency> <groupId>org.eclipse.tycho.extras</groupId> <artifactId>tycho-buildtimestamp-jgit</artifactId> <version>${tycho-version}</version> </dependency> </dependencies> <configuration> <timestampProvider>jgit</timestampProvider> <jgit.ignore>pom.xml</jgit.ignore> </configuration> </plugin> ...
Modifier and Type | Class and Description |
---|---|
private static class |
JGitBuildTimestampProvider.DirtyBehavior |
Modifier and Type | Field and Description |
---|---|
private org.eclipse.tycho.buildversion.BuildTimestampProvider |
defaultTimestampProvider |
private org.codehaus.plexus.logging.Logger |
logger |
Constructor and Description |
---|
JGitBuildTimestampProvider() |
Modifier and Type | Method and Description |
---|---|
private static org.eclipse.jgit.treewalk.filter.TreeFilter |
createPathFilter(java.lang.String relPath,
org.apache.maven.plugin.MojoExecution execution) |
private static java.lang.String |
getIgnoreFilter(org.apache.maven.plugin.MojoExecution execution) |
private java.lang.String |
getRelPath(org.eclipse.jgit.lib.Repository repository,
org.apache.maven.project.MavenProject project) |
java.util.Date |
getTimestamp(org.apache.maven.execution.MavenSession session,
org.apache.maven.project.MavenProject project,
org.apache.maven.plugin.MojoExecution execution) |
private static void |
printList(java.io.PrintWriter witer,
java.lang.String prefix,
java.util.Set<java.lang.String> files) |
private static java.lang.String |
toGitStatusStyleOutput(org.eclipse.jgit.lib.IndexDiff diff) |
@Requirement(hint="default") private org.eclipse.tycho.buildversion.BuildTimestampProvider defaultTimestampProvider
@Requirement private org.codehaus.plexus.logging.Logger logger
public java.util.Date getTimestamp(org.apache.maven.execution.MavenSession session, org.apache.maven.project.MavenProject project, org.apache.maven.plugin.MojoExecution execution) throws org.apache.maven.plugin.MojoExecutionException
getTimestamp
in interface org.eclipse.tycho.buildversion.BuildTimestampProvider
org.apache.maven.plugin.MojoExecutionException
private static org.eclipse.jgit.treewalk.filter.TreeFilter createPathFilter(java.lang.String relPath, org.apache.maven.plugin.MojoExecution execution) throws java.io.IOException
java.io.IOException
private static java.lang.String getIgnoreFilter(org.apache.maven.plugin.MojoExecution execution)
private java.lang.String getRelPath(org.eclipse.jgit.lib.Repository repository, org.apache.maven.project.MavenProject project) throws java.io.IOException
java.io.IOException
private static java.lang.String toGitStatusStyleOutput(org.eclipse.jgit.lib.IndexDiff diff)
private static void printList(java.io.PrintWriter witer, java.lang.String prefix, java.util.Set<java.lang.String> files)