@@ -76,11 +76,12 @@ export default class Java_maven extends Base_java {
76
76
* @private
77
77
*/
78
78
#createSbomStackAnalysis( manifest , opts = { } ) {
79
+ const manifestDir = path . dirname ( manifest )
79
80
const mvn = this . selectToolBinary ( manifest , opts )
80
81
81
82
// clean maven target
82
83
try {
83
- this . _invokeCommand ( mvn , [ '-q' , 'clean' , '-f' , manifest ] )
84
+ this . _invokeCommand ( mvn , [ '-q' , 'clean' ] , { cwd : manifestDir } )
84
85
} catch ( error ) {
85
86
throw new Error ( `failed to clean maven target` , { cause : error } )
86
87
}
@@ -89,7 +90,7 @@ export default class Java_maven extends Base_java {
89
90
let tmpDir = fs . mkdtempSync ( path . join ( os . tmpdir ( ) , 'exhort_' ) )
90
91
let tmpDepTree = path . join ( tmpDir , 'mvn_deptree.txt' )
91
92
// build initial command (dot outputType is not available for verbose mode)
92
- let depTreeCmdArgs = [ '-q' , 'org.apache.maven.plugins:maven-dependency-plugin:3.6.0:tree' , '-Dverbose' , '-DoutputType=text' , `-DoutputFile=${ tmpDepTree } ` , '-f' , manifest ]
93
+ let depTreeCmdArgs = [ '-q' , 'org.apache.maven.plugins:maven-dependency-plugin:3.6.0:tree' , '-Dverbose' , '-DoutputType=text' , `-DoutputFile=${ tmpDepTree } ` ]
93
94
// exclude ignored dependencies, exclude format is groupId:artifactId:scope:version.
94
95
// version and scope are marked as '*' if not specified (we do not use scope yet)
95
96
let ignoredDeps = new Array ( )
@@ -101,7 +102,7 @@ export default class Java_maven extends Base_java {
101
102
} )
102
103
// execute dependency tree command
103
104
try {
104
- this . _invokeCommand ( mvn , depTreeCmdArgs )
105
+ this . _invokeCommand ( mvn , depTreeCmdArgs , { cwd : manifestDir } )
105
106
} catch ( error ) {
106
107
throw new Error ( `failed creating maven dependency tree` , { cause : error } )
107
108
}
@@ -144,22 +145,21 @@ export default class Java_maven extends Base_java {
144
145
const mvn = this . selectToolBinary ( manifestPath , opts )
145
146
146
147
const tmpEffectivePom = path . resolve ( path . join ( path . dirname ( manifestPath ) , 'effective-pom.xml' ) )
147
- const targetPom = manifestPath
148
148
149
149
// create effective pom and save to temp file
150
150
try {
151
- this . _invokeCommand ( mvn , [ '-q' , 'help:effective-pom' , `-Doutput=${ tmpEffectivePom } ` , '-f' , targetPom ] )
151
+ this . _invokeCommand ( mvn , [ '-q' , 'help:effective-pom' , `-Doutput=${ tmpEffectivePom } ` ] , { cwd : path . dirname ( manifestPath ) } )
152
152
} catch ( error ) {
153
153
throw new Error ( `failed creating maven effective pom` , { cause : error } )
154
154
}
155
155
// iterate over all dependencies in original pom and collect all ignored ones
156
- let ignored = this . #getDependencies( targetPom ) . filter ( d => d . ignore )
156
+ let ignored = this . #getDependencies( manifestPath ) . filter ( d => d . ignore )
157
157
// iterate over all dependencies and create a package for every non-ignored one
158
158
/** @type [Dependency] */
159
159
let dependencies = this . #getDependencies( tmpEffectivePom )
160
160
. filter ( d => ! ( this . #dependencyIn( d , ignored ) ) && ! ( this . #dependencyInExcludingVersion( d , ignored ) ) )
161
161
let sbom = new Sbom ( ) ;
162
- let rootDependency = this . #getRootFromPom( tmpEffectivePom , targetPom ) ;
162
+ let rootDependency = this . #getRootFromPom( tmpEffectivePom , manifestPath ) ;
163
163
let purlRoot = this . toPurl ( rootDependency . groupId , rootDependency . artifactId , rootDependency . version )
164
164
sbom . addRoot ( purlRoot )
165
165
dependencies . forEach ( dep => {
0 commit comments