excluding this project itself

This commit is contained in:
Brian Long 2021-06-02 14:15:10 -04:00
parent b0baa443ca
commit 05adb5f119
4 changed files with 29 additions and 2 deletions

3
.gitignore vendored
View File

@ -7,3 +7,6 @@ pom.xml.versionsBackup
.project
.classpath
# Visual Studio Code
.factorypath

View File

@ -29,12 +29,23 @@ public class AmpDependencyFilter implements DependencyFilter {
private final Log log;
private final Charset charset;
private final ArtifactResolutionCallback callback;
private final String projectModuleId;
private Set<String> moduleIds = new HashSet<String>();
public AmpDependencyFilter(Log log, String charsetName, ArtifactResolutionCallback callback) {
this.log = log;
this.charset = Charset.forName(charsetName);
this.callback = callback;
this.projectModuleId = this.getModuleId(this.callback.getProject().getArtifact());
}
private String getModuleId(org.apache.maven.artifact.Artifact artifact) {
return artifact.getGroupId() + "." + artifact.getArtifactId();
}
private String getModuleId(Artifact artifact) {
return artifact.getGroupId() + "." + artifact.getArtifactId();
}
@Override
@ -43,14 +54,19 @@ public class AmpDependencyFilter implements DependencyFilter {
if (this.log.isDebugEnabled())
this.log.debug("Checking dependency: " + artifact.getArtifactId());
String moduleId = artifact.getGroupId() + "." + artifact.getArtifactId();
String moduleId = this.getModuleId(artifact);
if (this.projectModuleId.equals(moduleId)) {
// always include project itself, even if it is a module
return true;
}
if (this.moduleIds.contains(moduleId)) {
if (this.log.isDebugEnabled())
this.log.debug("Not packaging library; detected as Alfresco Module: " + node.getArtifact().getArtifactId());
return false;
} else if (parents != null) {
for (DependencyNode parent : parents) {
String parentModuleId = parent.getArtifact().getGroupId() + "." + parent.getArtifact().getArtifactId();
String parentModuleId = this.getModuleId(parent.getArtifact());
if (this.moduleIds.contains(parentModuleId)) {
this.moduleIds.add(moduleId);
if (this.log.isDebugEnabled())

View File

@ -90,6 +90,11 @@ public class AmpMojo extends AbstractMojo implements ArtifactResolutionCallback
@Parameter( property = "skip", required = true, defaultValue = "false" )
protected boolean skip;
@Override
public MavenProject getProject() {
return this.project;
}
public void execute() throws MojoExecutionException {
if (this.skip) {

View File

@ -1,11 +1,14 @@
package com.inteligr8.alfresco.amp;
import org.apache.maven.project.MavenProject;
import org.eclipse.aether.resolution.ArtifactRequest;
import org.eclipse.aether.resolution.ArtifactResolutionException;
import org.eclipse.aether.resolution.ArtifactResult;
public interface ArtifactResolutionCallback {
MavenProject getProject();
ArtifactResult resolveArtifact(ArtifactRequest artifactRequest) throws ArtifactResolutionException;
}