Skip to content

Commit 595e7b4

Browse files
Merge pull request redhat-appstudio#346 from dwalluck/pom-file
Allow alternate pom file
2 parents bf64bb1 + 29edcde commit 595e7b4

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

java-components/build-request-processor/pom.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@
7171
<groupId>org.gradle</groupId>
7272
<artifactId>gradle-tooling-api</artifactId>
7373
</dependency>
74+
<dependency>
75+
<groupId>org.apache.maven</groupId>
76+
<artifactId>maven-embedder</artifactId>
77+
</dependency>
7478
<dependency>
7579
<groupId>org.apache.maven</groupId>
7680
<artifactId>maven-model</artifactId>

java-components/build-request-processor/src/main/java/com/redhat/hacbs/container/analyser/build/LookupBuildInfoCommand.java

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,18 @@
99
import java.io.IOException;
1010
import java.nio.file.Files;
1111
import java.nio.file.Path;
12-
import java.util.*;
12+
import java.util.ArrayList;
13+
import java.util.Collections;
14+
import java.util.List;
15+
import java.util.Map;
16+
import java.util.Optional;
17+
import java.util.Set;
1318

1419
import javax.enterprise.inject.Instance;
1520
import javax.inject.Inject;
1621

22+
import org.apache.commons.cli.ParseException;
23+
import org.apache.maven.cli.CLIManager;
1724
import org.apache.maven.model.Model;
1825
import org.apache.maven.model.io.xpp3.MavenXpp3Reader;
1926
import org.eclipse.jgit.api.Git;
@@ -110,8 +117,30 @@ private void doBuildAnalysis(String scmUrl, String scmTag, String context, Build
110117
}
111118
BuildInfo info = new BuildInfo();
112119
info.commitTime = time;
113-
Path pomFile = path.resolve("pom.xml");
120+
Path pomFile = null;
121+
if (buildRecipeInfo != null && buildRecipeInfo.getAdditionalArgs() != null) {
122+
try {
123+
CLIManager cliManager = new CLIManager();
124+
org.apache.commons.cli.CommandLine commandLine = cliManager
125+
.parse(buildRecipeInfo.getAdditionalArgs().toArray(new String[0]));
126+
if (commandLine.hasOption(CLIManager.ALTERNATE_POM_FILE)) {
127+
String alternatePomFile = commandLine.getOptionValue(CLIManager.ALTERNATE_POM_FILE);
128+
if (alternatePomFile != null) {
129+
pomFile = path.resolve(alternatePomFile);
130+
if (Files.isDirectory(pomFile)) {
131+
pomFile = pomFile.resolve("pom.xml");
132+
}
133+
}
134+
}
135+
} catch (ParseException e) {
136+
Log.errorf(e, "Failed to parse command line %s", buildRecipeInfo.getAdditionalArgs());
137+
}
138+
}
139+
if (pomFile == null) {
140+
pomFile = path.resolve("pom.xml");
141+
}
114142
if (Files.isRegularFile(pomFile)) {
143+
Log.infof("Found Maven pom file at %s", pomFile);
115144
try (BufferedReader pomReader = Files.newBufferedReader(pomFile)) {
116145
MavenXpp3Reader reader = new MavenXpp3Reader();
117146
Model model = reader.read(pomReader);

0 commit comments

Comments
 (0)