fix(gradle): fix gradle undefined dependency target (#29943)
<!-- Please make sure you have read the submission guidelines before posting an PR --> <!-- https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr --> <!-- Please make sure that your commit message follows our format --> <!-- Example: `fix(nx): must begin with lowercase` --> <!-- If this is a particularly complex change or feature addition, you can request a dedicated Nx release for this pull request branch. Mention someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they will confirm if the PR warrants its own release for testing purposes, and generate it for you if appropriate. --> ## Current Behavior <!-- This is the behavior we have today --> got this error: ``` NX Cannot read properties of undefined (reading '1') TypeError: Cannot read properties of undefined (reading '1') at fileDataDepTarget (/Users/emily/code/tmp/spring-boot/.nx/installation/node_modules/nx/src/config/project-graph.js:13:18) at ProjectGraphBuilder.calculateTargetDepsFromFiles (/Users/emily/code/tmp/spring-boot/.nx/installation/node_modules/nx/src/project-graph/project-graph-builder.js:271:74) ``` this happens because the project in the dependency file is in format like `:spring-boot-project:spring-boot-autoconfigure (*)`. need to take out the text after space. ## Expected Behavior <!-- This is the behavior we should expect with the changes in this PR --> ## Related Issue(s) <!-- Please link the issue being fixed so it gets closed when this is merged. --> Fixes #
This commit is contained in:
parent
e77280f7d4
commit
7c5fcf3566
@ -44,14 +44,16 @@ export const createDependencies: CreateDependencies = async (
|
||||
const targetProjectName = Object.values(context.projects).find(
|
||||
(project) => project.root === targetProjectRoot
|
||||
)?.name;
|
||||
const dependency: RawProjectGraphDependency = {
|
||||
source: projectName as string,
|
||||
target: targetProjectName as string,
|
||||
type: DependencyType.static,
|
||||
sourceFile: gradleFile,
|
||||
};
|
||||
validateDependency(dependency, context);
|
||||
dependencies.add(dependency);
|
||||
if (targetProjectName) {
|
||||
const dependency: RawProjectGraphDependency = {
|
||||
source: projectName as string,
|
||||
target: targetProjectName as string,
|
||||
type: DependencyType.static,
|
||||
sourceFile: gradleFile,
|
||||
};
|
||||
validateDependency(dependency, context);
|
||||
dependencies.add(dependency);
|
||||
}
|
||||
});
|
||||
}
|
||||
gradleProjectToChildProjects.get(gradleProject)?.forEach((childProject) => {
|
||||
|
||||
7530
packages/gradle/src/utils/__mocks__/gradle-custom-dependencies.txt
Normal file
7530
packages/gradle/src/utils/__mocks__/gradle-custom-dependencies.txt
Normal file
File diff suppressed because it is too large
Load Diff
@ -73,4 +73,26 @@ describe('processGradleDependencies', () => {
|
||||
const dependencies = processGradleDependencies(depFilePath);
|
||||
expect(Array.from(dependencies)).toEqual([':utilities']);
|
||||
});
|
||||
|
||||
it('should process gradle custom dependencies', () => {
|
||||
const depFilePath = join(
|
||||
__dirname,
|
||||
'..',
|
||||
'utils/__mocks__/gradle-custom-dependencies.txt'
|
||||
);
|
||||
const dependencies = processGradleDependencies(depFilePath);
|
||||
expect(Array.from(dependencies)).toEqual([
|
||||
':spring-boot-project:spring-boot-parent',
|
||||
':spring-boot-project:spring-boot-actuator',
|
||||
':spring-boot-project:spring-boot-actuator-autoconfigure',
|
||||
':spring-boot-project:spring-boot-autoconfigure',
|
||||
':spring-boot-project:spring-boot-docker-compose',
|
||||
':spring-boot-project:spring-boot-tools:spring-boot-cli',
|
||||
':spring-boot-project:spring-boot-tools:spring-boot-loader-tools',
|
||||
':spring-boot-project:spring-boot-test',
|
||||
':spring-boot-project:spring-boot-test-autoconfigure',
|
||||
':spring-boot-project:spring-boot-testcontainers',
|
||||
':spring-boot-project:spring-boot-devtools',
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
@ -424,10 +424,11 @@ export function processGradleDependencies(depsFile: string): Set<string> {
|
||||
targetProjectName = dep
|
||||
.substring('project '.length)
|
||||
.replace(/ \(n\)$/, '')
|
||||
.trim();
|
||||
.trim()
|
||||
.split(' ')?.[0];
|
||||
} else if (dep.includes('-> project')) {
|
||||
const [_, projectName] = dep.split('-> project');
|
||||
targetProjectName = projectName.trim();
|
||||
targetProjectName = projectName.trim().split(' ')?.[0];
|
||||
}
|
||||
if (targetProjectName) {
|
||||
dependedProjects.add(targetProjectName);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user