Skip to content

Commit 46d363f

Browse files
authored
Fix the maven direct/transitive comment (#175)
Signed-off-by: Jiyeong Seok <[email protected]>
1 parent e811d9b commit 46d363f

File tree

1 file changed

+18
-22
lines changed
  • src/fosslight_dependency/package_manager

1 file changed

+18
-22
lines changed

src/fosslight_dependency/package_manager/Maven.py

Lines changed: 18 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,6 @@ def clean_run_maven_plugin_output(self):
131131
shutil.rmtree(top_path)
132132

133133
def run_maven_plugin(self):
134-
dependency_tree_fname = 'tmp_dependency_tree.txt'
135-
136134
logger.info('Run maven license scanning plugin with temporary pom.xml')
137135
if os.path.isfile('mvnw') or os.path.isfile('mvnw.cmd'):
138136
if self.platform == const.WINDOWS:
@@ -147,24 +145,23 @@ def run_maven_plugin(self):
147145
if ret != 0:
148146
logger.error(f"Failed to run maven plugin: {cmd}")
149147

150-
cmd = f"{cmd_mvn} dependency:tree > {dependency_tree_fname}"
151-
ret = subprocess.call(cmd, shell=True)
152-
if ret != 0:
148+
cmd = f"{cmd_mvn} dependency:tree"
149+
ret_txt = subprocess.check_output(cmd, text=True, shell=True)
150+
if ret_txt is not None:
151+
self.parse_dependency_tree(ret_txt)
152+
self.set_direct_dependencies(True)
153+
else:
153154
logger.error(f"Failed to run: {cmd}")
154155
self.set_direct_dependencies(False)
155-
else:
156-
self.parse_dependency_tree(dependency_tree_fname)
157-
self.set_direct_dependencies(True)
158-
os.remove(dependency_tree_fname)
159156

160157
def create_dep_stack(self, dep_line):
161158
dep_stack = []
162159
cur_flag = ''
163160
dep_level = -1
164161
dep_level_plus = False
165-
for line in dep_line.readlines():
162+
for line in dep_line.split('\n'):
166163
try:
167-
if not line.startswith('[INFO]'):
164+
if not re.search(r'[.*INFO.*]', line):
168165
continue
169166
if len(line) <= 7:
170167
continue
@@ -194,17 +191,16 @@ def create_dep_stack(self, dep_line):
194191
logger.warning(f"Failed to parse dependency tree: {e}")
195192

196193
def parse_dependency_tree(self, f_name):
197-
with open(f_name, 'r', encoding='utf8') as input_fp:
198-
try:
199-
for stack, name in self.create_dep_stack(input_fp):
200-
if len(stack) == 0:
201-
self.direct_dep_list.append(name)
202-
else:
203-
if stack[-1] not in self.relation_tree:
204-
self.relation_tree[stack[-1]] = []
205-
self.relation_tree[stack[-1]].append(name)
206-
except Exception as e:
207-
logger.warning(f'Fail to parse maven dependency tree:{e}')
194+
try:
195+
for stack, name in self.create_dep_stack(f_name):
196+
if len(stack) == 0:
197+
self.direct_dep_list.append(name)
198+
else:
199+
if stack[-1] not in self.relation_tree:
200+
self.relation_tree[stack[-1]] = []
201+
self.relation_tree[stack[-1]].append(name)
202+
except Exception as e:
203+
logger.warning(f'Fail to parse maven dependency tree:{e}')
208204

209205
def parse_oss_information(self, f_name):
210206
with open(f_name, 'r', encoding='utf8') as input_fp:

0 commit comments

Comments
 (0)