@xpertss/projen-types 0.0.13 → 0.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/.jsii +2598 -746
  2. package/API.md +5752 -1419
  3. package/README.md +274 -35
  4. package/lib/actions/action-build-workflow.js +1 -1
  5. package/lib/actions/action-dogfood-workflow.js +1 -1
  6. package/lib/actions/action-sonar-workflow.js +1 -1
  7. package/lib/actions/github-action-project.d.ts +5 -0
  8. package/lib/actions/github-action-project.js +10 -3
  9. package/lib/cdk/app-runtime-scaffold.js +1 -1
  10. package/lib/cdk/cdk-app-project.js +1 -1
  11. package/lib/cdk/cdk-infra-project.js +1 -1
  12. package/lib/cdk/cdk-typescript-base.js +10 -3
  13. package/lib/cdk/components/ecr-ecs-constructs.js +1 -1
  14. package/lib/cdk/components/edge-networking-constructs.js +1 -1
  15. package/lib/cdk/database-component.js +1 -1
  16. package/lib/cdk/options.d.ts +5 -0
  17. package/lib/cdk/options.js +1 -1
  18. package/lib/common/ci-steps.d.ts +14 -0
  19. package/lib/common/ci-steps.js +30 -0
  20. package/lib/common/editorconfig.d.ts +12 -0
  21. package/lib/common/editorconfig.js +44 -0
  22. package/lib/common/projen-drift-check-workflow.js +5 -15
  23. package/lib/common/workflow-change-notice-workflow.js +1 -1
  24. package/lib/index.d.ts +4 -0
  25. package/lib/index.js +5 -1
  26. package/lib/java/components/cdk-deploy-hook.d.ts +2 -2
  27. package/lib/java/components/cdk-deploy-hook.js +2 -2
  28. package/lib/java/components/code-index-workflow.d.ts +2 -2
  29. package/lib/java/components/code-index-workflow.js +5 -3
  30. package/lib/java/components/docker-publish.d.ts +2 -2
  31. package/lib/java/components/docker-publish.js +2 -2
  32. package/lib/java/components/flyway-migration.d.ts +8 -3
  33. package/lib/java/components/flyway-migration.js +11 -5
  34. package/lib/java/components/github-packages-publish.d.ts +2 -2
  35. package/lib/java/components/github-packages-publish.js +2 -2
  36. package/lib/java/components/maven-central-publish.d.ts +2 -2
  37. package/lib/java/components/maven-central-publish.js +2 -2
  38. package/lib/java/components/maven-upgrade-report.d.ts +22 -0
  39. package/lib/java/components/maven-upgrade-report.js +61 -0
  40. package/lib/java/java-app-project.js +1 -1
  41. package/lib/java/java-library-project.d.ts +5 -1
  42. package/lib/java/java-library-project.js +14 -3
  43. package/lib/java/java-maven-base.d.ts +91 -8
  44. package/lib/java/java-maven-base.js +339 -24
  45. package/lib/java/java-service-project.d.ts +17 -5
  46. package/lib/java/java-service-project.js +20 -7
  47. package/lib/java/java-spring-boot-project.d.ts +30 -0
  48. package/lib/java/java-spring-boot-project.js +68 -0
  49. package/lib/java/java-versions.d.ts +40 -0
  50. package/lib/java/java-versions.js +106 -0
  51. package/lib/java/maven/maven-module.d.ts +47 -0
  52. package/lib/java/maven/maven-module.js +99 -0
  53. package/lib/java/maven/maven-pom.d.ts +143 -0
  54. package/lib/java/maven/maven-pom.js +337 -0
  55. package/lib/java/options.d.ts +128 -1
  56. package/lib/java/options.js +1 -1
  57. package/package.json +1 -1
  58. package/lib/common/upgrade-workflow.d.ts +0 -18
  59. package/lib/common/upgrade-workflow.js +0 -45
@@ -1,10 +1,10 @@
1
1
  import { Component } from 'projen';
2
- import type { java } from 'projen';
2
+ import type { JavaMavenProject } from '../java-maven-base';
3
3
  export interface GitHubPackagesPublishOptions {
4
4
  /** @default derived from the repository URL */
5
5
  readonly ghPackagesRegistry?: string;
6
6
  }
7
7
  /** On-demand publish to GitHub Packages. */
8
8
  export declare class GitHubPackagesPublish extends Component {
9
- constructor(project: java.JavaProject, options?: GitHubPackagesPublishOptions);
9
+ constructor(project: JavaMavenProject, options?: GitHubPackagesPublishOptions);
10
10
  }
@@ -6,7 +6,7 @@ const projen_1 = require("projen");
6
6
  const workflow_purpose_1 = require("../../common/workflow-purpose");
7
7
  /** On-demand publish to GitHub Packages. */
8
8
  class GitHubPackagesPublish extends projen_1.Component {
9
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.GitHubPackagesPublish", version: "0.0.13" };
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.GitHubPackagesPublish", version: "0.0.14" };
10
10
  constructor(project, options = {}) {
11
11
  super(project, 'GitHubPackagesPublish');
12
12
  const gh = project.github;
@@ -33,4 +33,4 @@ class GitHubPackagesPublish extends projen_1.Component {
33
33
  }
34
34
  }
35
35
  exports.GitHubPackagesPublish = GitHubPackagesPublish;
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLXBhY2thZ2VzLXB1Ymxpc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvamF2YS9jb21wb25lbnRzL2dpdGh1Yi1wYWNrYWdlcy1wdWJsaXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtQ0FBMkM7QUFFM0Msb0VBQW9FO0FBT3BFLDRDQUE0QztBQUM1QyxNQUFhLHFCQUFzQixTQUFRLGtCQUFTOztJQUNsRCxZQUNFLE9BQXlCLEVBQ3pCLFVBQXdDLEVBQUU7UUFFMUMsS0FBSyxDQUFDLE9BQU8sRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBRXhDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FDWixPQUFPLENBQUMsa0JBQWtCO1lBQzFCLHVEQUF1RCxDQUFDO1FBRTFELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUU7WUFDeEQsSUFBSSxFQUFFLG1EQUFtRCxRQUFRLEVBQUU7U0FDcEUsQ0FBQyxDQUFDO1FBRUgsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRTtZQUNsRCxJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxXQUFXO1lBQ2pCLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRTtZQUNsQyxXQUFXLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLGVBQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUk7Z0JBQzdDLFFBQVEsRUFBRSxlQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLO2FBQy9DO1lBQ0QsR0FBRyxFQUFFLEVBQUUsWUFBWSxFQUFFLDZCQUE2QixFQUFFO1NBQ3JELENBQUMsQ0FBQztRQUNILElBQUEsc0NBQW1CLEVBQ2pCLGVBQWUsQ0FBQyxJQUFJLEVBQ3BCLG9EQUFvRCxDQUNyRCxDQUFDO0lBQ0osQ0FBQzs7QUFuQ0gsc0RBb0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBnaXRodWIgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHR5cGUgeyBqYXZhIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IG5vdGVXb3JrZmxvd1B1cnBvc2UgfSBmcm9tICcuLi8uLi9jb21tb24vd29ya2Zsb3ctcHVycG9zZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2l0SHViUGFja2FnZXNQdWJsaXNoT3B0aW9ucyB7XG4gIC8qKiBAZGVmYXVsdCBkZXJpdmVkIGZyb20gdGhlIHJlcG9zaXRvcnkgVVJMICovXG4gIHJlYWRvbmx5IGdoUGFja2FnZXNSZWdpc3RyeT86IHN0cmluZztcbn1cblxuLyoqIE9uLWRlbWFuZCBwdWJsaXNoIHRvIEdpdEh1YiBQYWNrYWdlcy4gKi9cbmV4cG9ydCBjbGFzcyBHaXRIdWJQYWNrYWdlc1B1Ymxpc2ggZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm9qZWN0OiBqYXZhLkphdmFQcm9qZWN0LFxuICAgIG9wdGlvbnM6IEdpdEh1YlBhY2thZ2VzUHVibGlzaE9wdGlvbnMgPSB7fSxcbiAgKSB7XG4gICAgc3VwZXIocHJvamVjdCwgJ0dpdEh1YlBhY2thZ2VzUHVibGlzaCcpO1xuXG4gICAgY29uc3QgZ2ggPSBwcm9qZWN0LmdpdGh1YjtcbiAgICBpZiAoIWdoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dpdEh1YlBhY2thZ2VzUHVibGlzaCByZXF1aXJlcyBHaXRIdWIgaW50ZWdyYXRpb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCByZWdpc3RyeSA9XG4gICAgICBvcHRpb25zLmdoUGFja2FnZXNSZWdpc3RyeSA/P1xuICAgICAgJ2h0dHBzOi8vbWF2ZW4ucGtnLmdpdGh1Yi5jb20vJHt7IGdpdGh1Yi5yZXBvc2l0b3J5IH19JztcblxuICAgIGNvbnN0IHB1Ymxpc2hUYXNrID0gcHJvamVjdC5hZGRUYXNrKCdwdWJsaXNoOmdocGFja2FnZXMnLCB7XG4gICAgICBleGVjOiBgbXZuIC1CIGRlcGxveSAtRGFsdERlcGxveW1lbnRSZXBvc2l0b3J5PWdpdGh1Yjo6JHtyZWdpc3RyeX1gLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcHVibGlzaFdvcmtmbG93ID0gbmV3IGdpdGh1Yi5UYXNrV29ya2Zsb3coZ2gsIHtcbiAgICAgIG5hbWU6ICdwdWJsaXNoLWdocGFja2FnZXMnLFxuICAgICAgam9iSWQ6ICdwdWJsaXNoJyxcbiAgICAgIHRhc2s6IHB1Ymxpc2hUYXNrLFxuICAgICAgdHJpZ2dlcnM6IHsgd29ya2Zsb3dEaXNwYXRjaDoge30gfSxcbiAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgIGNvbnRlbnRzOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uUkVBRCxcbiAgICAgICAgcGFja2FnZXM6IGdpdGh1Yi53b3JrZmxvd3MuSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgIH0sXG4gICAgICBlbnY6IHsgR0lUSFVCX1RPS0VOOiAnJHt7IHNlY3JldHMuR0lUSFVCX1RPS0VOIH19JyB9LFxuICAgIH0pO1xuICAgIG5vdGVXb3JrZmxvd1B1cnBvc2UoXG4gICAgICBwdWJsaXNoV29ya2Zsb3cuZmlsZSxcbiAgICAgICdQdWJsaXNoIHRoZSBhcnRpZmFjdCB0byBHaXRIdWIgUGFja2FnZXMgb24gZGVtYW5kLicsXG4gICAgKTtcbiAgfVxufVxuIl19
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLXBhY2thZ2VzLXB1Ymxpc2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvamF2YS9jb21wb25lbnRzL2dpdGh1Yi1wYWNrYWdlcy1wdWJsaXNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtQ0FBMkM7QUFDM0Msb0VBQW9FO0FBUXBFLDRDQUE0QztBQUM1QyxNQUFhLHFCQUFzQixTQUFRLGtCQUFTOztJQUNsRCxZQUNFLE9BQXlCLEVBQ3pCLFVBQXdDLEVBQUU7UUFFMUMsS0FBSyxDQUFDLE9BQU8sRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO1FBRXhDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FDWixPQUFPLENBQUMsa0JBQWtCO1lBQzFCLHVEQUF1RCxDQUFDO1FBRTFELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsb0JBQW9CLEVBQUU7WUFDeEQsSUFBSSxFQUFFLG1EQUFtRCxRQUFRLEVBQUU7U0FDcEUsQ0FBQyxDQUFDO1FBRUgsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRTtZQUNsRCxJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxXQUFXO1lBQ2pCLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRTtZQUNsQyxXQUFXLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLGVBQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUk7Z0JBQzdDLFFBQVEsRUFBRSxlQUFNLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxLQUFLO2FBQy9DO1lBQ0QsR0FBRyxFQUFFLEVBQUUsWUFBWSxFQUFFLDZCQUE2QixFQUFFO1NBQ3JELENBQUMsQ0FBQztRQUNILElBQUEsc0NBQW1CLEVBQ2pCLGVBQWUsQ0FBQyxJQUFJLEVBQ3BCLG9EQUFvRCxDQUNyRCxDQUFDO0lBQ0osQ0FBQzs7QUFuQ0gsc0RBb0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBnaXRodWIgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgbm90ZVdvcmtmbG93UHVycG9zZSB9IGZyb20gJy4uLy4uL2NvbW1vbi93b3JrZmxvdy1wdXJwb3NlJztcbmltcG9ydCB0eXBlIHsgSmF2YU1hdmVuUHJvamVjdCB9IGZyb20gJy4uL2phdmEtbWF2ZW4tYmFzZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2l0SHViUGFja2FnZXNQdWJsaXNoT3B0aW9ucyB7XG4gIC8qKiBAZGVmYXVsdCBkZXJpdmVkIGZyb20gdGhlIHJlcG9zaXRvcnkgVVJMICovXG4gIHJlYWRvbmx5IGdoUGFja2FnZXNSZWdpc3RyeT86IHN0cmluZztcbn1cblxuLyoqIE9uLWRlbWFuZCBwdWJsaXNoIHRvIEdpdEh1YiBQYWNrYWdlcy4gKi9cbmV4cG9ydCBjbGFzcyBHaXRIdWJQYWNrYWdlc1B1Ymxpc2ggZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcm9qZWN0OiBKYXZhTWF2ZW5Qcm9qZWN0LFxuICAgIG9wdGlvbnM6IEdpdEh1YlBhY2thZ2VzUHVibGlzaE9wdGlvbnMgPSB7fSxcbiAgKSB7XG4gICAgc3VwZXIocHJvamVjdCwgJ0dpdEh1YlBhY2thZ2VzUHVibGlzaCcpO1xuXG4gICAgY29uc3QgZ2ggPSBwcm9qZWN0LmdpdGh1YjtcbiAgICBpZiAoIWdoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dpdEh1YlBhY2thZ2VzUHVibGlzaCByZXF1aXJlcyBHaXRIdWIgaW50ZWdyYXRpb24nKTtcbiAgICB9XG5cbiAgICBjb25zdCByZWdpc3RyeSA9XG4gICAgICBvcHRpb25zLmdoUGFja2FnZXNSZWdpc3RyeSA/P1xuICAgICAgJ2h0dHBzOi8vbWF2ZW4ucGtnLmdpdGh1Yi5jb20vJHt7IGdpdGh1Yi5yZXBvc2l0b3J5IH19JztcblxuICAgIGNvbnN0IHB1Ymxpc2hUYXNrID0gcHJvamVjdC5hZGRUYXNrKCdwdWJsaXNoOmdocGFja2FnZXMnLCB7XG4gICAgICBleGVjOiBgbXZuIC1CIGRlcGxveSAtRGFsdERlcGxveW1lbnRSZXBvc2l0b3J5PWdpdGh1Yjo6JHtyZWdpc3RyeX1gLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcHVibGlzaFdvcmtmbG93ID0gbmV3IGdpdGh1Yi5UYXNrV29ya2Zsb3coZ2gsIHtcbiAgICAgIG5hbWU6ICdwdWJsaXNoLWdocGFja2FnZXMnLFxuICAgICAgam9iSWQ6ICdwdWJsaXNoJyxcbiAgICAgIHRhc2s6IHB1Ymxpc2hUYXNrLFxuICAgICAgdHJpZ2dlcnM6IHsgd29ya2Zsb3dEaXNwYXRjaDoge30gfSxcbiAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgIGNvbnRlbnRzOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uUkVBRCxcbiAgICAgICAgcGFja2FnZXM6IGdpdGh1Yi53b3JrZmxvd3MuSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgIH0sXG4gICAgICBlbnY6IHsgR0lUSFVCX1RPS0VOOiAnJHt7IHNlY3JldHMuR0lUSFVCX1RPS0VOIH19JyB9LFxuICAgIH0pO1xuICAgIG5vdGVXb3JrZmxvd1B1cnBvc2UoXG4gICAgICBwdWJsaXNoV29ya2Zsb3cuZmlsZSxcbiAgICAgICdQdWJsaXNoIHRoZSBhcnRpZmFjdCB0byBHaXRIdWIgUGFja2FnZXMgb24gZGVtYW5kLicsXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,5 +1,5 @@
1
1
  import { Component } from 'projen';
2
- import type { java } from 'projen';
2
+ import type { JavaMavenProject } from '../java-maven-base';
3
3
  export interface MavenCentralPublishOptions {
4
4
  /** @default false */
5
5
  readonly mavenCentralOidc?: boolean;
@@ -9,5 +9,5 @@ export interface MavenCentralPublishOptions {
9
9
  * or OIDC trusted publishing.
10
10
  */
11
11
  export declare class MavenCentralPublish extends Component {
12
- constructor(project: java.JavaProject, options?: MavenCentralPublishOptions);
12
+ constructor(project: JavaMavenProject, options?: MavenCentralPublishOptions);
13
13
  }
@@ -9,7 +9,7 @@ const workflow_purpose_1 = require("../../common/workflow-purpose");
9
9
  * or OIDC trusted publishing.
10
10
  */
11
11
  class MavenCentralPublish extends projen_1.Component {
12
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenCentralPublish", version: "0.0.13" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenCentralPublish", version: "0.0.14" };
13
13
  constructor(project, options = {}) {
14
14
  super(project, 'MavenCentralPublish');
15
15
  const gh = project.github;
@@ -43,4 +43,4 @@ class MavenCentralPublish extends projen_1.Component {
43
43
  }
44
44
  }
45
45
  exports.MavenCentralPublish = MavenCentralPublish;
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW4tY2VudHJhbC1wdWJsaXNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2phdmEvY29tcG9uZW50cy9tYXZlbi1jZW50cmFsLXB1Ymxpc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLG1DQUFpRDtBQUVqRCxvRUFBb0U7QUFPcEU7OztHQUdHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxrQkFBUzs7SUFDaEQsWUFBWSxPQUF5QixFQUFFLFVBQXNDLEVBQUU7UUFDN0UsS0FBSyxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBRXRDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBUyxPQUFPLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFO1lBQ2pFLElBQUksRUFBRSwwQkFBMEI7U0FDakMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRTtZQUNsRCxJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxXQUFXO1lBQ2pCLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRTtZQUNsQyxXQUFXLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLGVBQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUk7Z0JBQzdDLE9BQU8sRUFBRSxPQUFPLENBQUMsZ0JBQWdCO29CQUMvQixDQUFDLENBQUMsZUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSztvQkFDdEMsQ0FBQyxDQUFDLGVBQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUk7YUFDeEM7WUFDRCxHQUFHLEVBQUUsT0FBTyxDQUFDLGdCQUFnQjtnQkFDM0IsQ0FBQyxDQUFDLEVBQUU7Z0JBQ0osQ0FBQyxDQUFDO29CQUNBLHFCQUFxQixFQUFFLHNDQUFzQztvQkFDN0Qsb0JBQW9CLEVBQUUscUNBQXFDO29CQUMzRCxzQkFBc0IsRUFBRSx1Q0FBdUM7b0JBQy9ELHNCQUFzQixFQUFFLHVDQUF1QztpQkFDaEU7U0FDSixDQUFDLENBQUM7UUFDSCxJQUFBLHNDQUFtQixFQUNqQixlQUFlLENBQUMsSUFBSSxFQUNwQixrREFBa0QsQ0FDbkQsQ0FBQztJQUNKLENBQUM7O0FBckNILGtEQXNDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVGFzaywgZ2l0aHViIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB0eXBlIHsgamF2YSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBub3RlV29ya2Zsb3dQdXJwb3NlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3dvcmtmbG93LXB1cnBvc2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hdmVuQ2VudHJhbFB1Ymxpc2hPcHRpb25zIHtcbiAgLyoqIEBkZWZhdWx0IGZhbHNlICovXG4gIHJlYWRvbmx5IG1hdmVuQ2VudHJhbE9pZGM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE9uLWRlbWFuZCBwdWJsaXNoIHdvcmtmbG93IHRvIE1hdmVuIENlbnRyYWwsIHdpdGggR1BHIHNpZ25pbmcgKHNlY3JldHMpXG4gKiBvciBPSURDIHRydXN0ZWQgcHVibGlzaGluZy5cbiAqL1xuZXhwb3J0IGNsYXNzIE1hdmVuQ2VudHJhbFB1Ymxpc2ggZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBqYXZhLkphdmFQcm9qZWN0LCBvcHRpb25zOiBNYXZlbkNlbnRyYWxQdWJsaXNoT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIocHJvamVjdCwgJ01hdmVuQ2VudHJhbFB1Ymxpc2gnKTtcblxuICAgIGNvbnN0IGdoID0gcHJvamVjdC5naXRodWI7XG4gICAgaWYgKCFnaCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYXZlbkNlbnRyYWxQdWJsaXNoIHJlcXVpcmVzIEdpdEh1YiBpbnRlZ3JhdGlvbicpO1xuICAgIH1cblxuICAgIGNvbnN0IHB1Ymxpc2hUYXNrOiBUYXNrID0gcHJvamVjdC5hZGRUYXNrKCdwdWJsaXNoOm1hdmVuLWNlbnRyYWwnLCB7XG4gICAgICBleGVjOiAnbXZuIC1CIGRlcGxveSAtUCByZWxlYXNlJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHB1Ymxpc2hXb3JrZmxvdyA9IG5ldyBnaXRodWIuVGFza1dvcmtmbG93KGdoLCB7XG4gICAgICBuYW1lOiAncHVibGlzaC1tYXZlbi1jZW50cmFsJyxcbiAgICAgIGpvYklkOiAncHVibGlzaCcsXG4gICAgICB0YXNrOiBwdWJsaXNoVGFzayxcbiAgICAgIHRyaWdnZXJzOiB7IHdvcmtmbG93RGlzcGF0Y2g6IHt9IH0sXG4gICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICBjb250ZW50czogZ2l0aHViLndvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgIGlkVG9rZW46IG9wdGlvbnMubWF2ZW5DZW50cmFsT2lkY1xuICAgICAgICAgID8gZ2l0aHViLndvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLldSSVRFXG4gICAgICAgICAgOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uTk9ORSxcbiAgICAgIH0sXG4gICAgICBlbnY6IG9wdGlvbnMubWF2ZW5DZW50cmFsT2lkY1xuICAgICAgICA/IHt9XG4gICAgICAgIDoge1xuICAgICAgICAgIE1BVkVOX0dQR19QUklWQVRFX0tFWTogJyR7eyBzZWNyZXRzLk1BVkVOX0dQR19QUklWQVRFX0tFWSB9fScsXG4gICAgICAgICAgTUFWRU5fR1BHX1BBU1NQSFJBU0U6ICcke3sgc2VjcmV0cy5NQVZFTl9HUEdfUEFTU1BIUkFTRSB9fScsXG4gICAgICAgICAgTUFWRU5fQ0VOVFJBTF9VU0VSTkFNRTogJyR7eyBzZWNyZXRzLk1BVkVOX0NFTlRSQUxfVVNFUk5BTUUgfX0nLFxuICAgICAgICAgIE1BVkVOX0NFTlRSQUxfUEFTU1dPUkQ6ICcke3sgc2VjcmV0cy5NQVZFTl9DRU5UUkFMX1BBU1NXT1JEIH19JyxcbiAgICAgICAgfSxcbiAgICB9KTtcbiAgICBub3RlV29ya2Zsb3dQdXJwb3NlKFxuICAgICAgcHVibGlzaFdvcmtmbG93LmZpbGUsXG4gICAgICAnUHVibGlzaCB0aGUgYXJ0aWZhY3QgdG8gTWF2ZW4gQ2VudHJhbCBvbiBkZW1hbmQuJyxcbiAgICApO1xuICB9XG59XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW4tY2VudHJhbC1wdWJsaXNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2phdmEvY29tcG9uZW50cy9tYXZlbi1jZW50cmFsLXB1Ymxpc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLG1DQUFpRDtBQUNqRCxvRUFBb0U7QUFRcEU7OztHQUdHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxrQkFBUzs7SUFDaEQsWUFBWSxPQUF5QixFQUFFLFVBQXNDLEVBQUU7UUFDN0UsS0FBSyxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO1FBRXRDLE1BQU0sRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDMUIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFFRCxNQUFNLFdBQVcsR0FBUyxPQUFPLENBQUMsT0FBTyxDQUFDLHVCQUF1QixFQUFFO1lBQ2pFLElBQUksRUFBRSwwQkFBMEI7U0FDakMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFNLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRTtZQUNsRCxJQUFJLEVBQUUsdUJBQXVCO1lBQzdCLEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxXQUFXO1lBQ2pCLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRTtZQUNsQyxXQUFXLEVBQUU7Z0JBQ1gsUUFBUSxFQUFFLGVBQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUk7Z0JBQzdDLE9BQU8sRUFBRSxPQUFPLENBQUMsZ0JBQWdCO29CQUMvQixDQUFDLENBQUMsZUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSztvQkFDdEMsQ0FBQyxDQUFDLGVBQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUk7YUFDeEM7WUFDRCxHQUFHLEVBQUUsT0FBTyxDQUFDLGdCQUFnQjtnQkFDM0IsQ0FBQyxDQUFDLEVBQUU7Z0JBQ0osQ0FBQyxDQUFDO29CQUNBLHFCQUFxQixFQUFFLHNDQUFzQztvQkFDN0Qsb0JBQW9CLEVBQUUscUNBQXFDO29CQUMzRCxzQkFBc0IsRUFBRSx1Q0FBdUM7b0JBQy9ELHNCQUFzQixFQUFFLHVDQUF1QztpQkFDaEU7U0FDSixDQUFDLENBQUM7UUFDSCxJQUFBLHNDQUFtQixFQUNqQixlQUFlLENBQUMsSUFBSSxFQUNwQixrREFBa0QsQ0FDbkQsQ0FBQztJQUNKLENBQUM7O0FBckNILGtEQXNDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVGFzaywgZ2l0aHViIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IG5vdGVXb3JrZmxvd1B1cnBvc2UgfSBmcm9tICcuLi8uLi9jb21tb24vd29ya2Zsb3ctcHVycG9zZSc7XG5pbXBvcnQgdHlwZSB7IEphdmFNYXZlblByb2plY3QgfSBmcm9tICcuLi9qYXZhLW1hdmVuLWJhc2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hdmVuQ2VudHJhbFB1Ymxpc2hPcHRpb25zIHtcbiAgLyoqIEBkZWZhdWx0IGZhbHNlICovXG4gIHJlYWRvbmx5IG1hdmVuQ2VudHJhbE9pZGM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIE9uLWRlbWFuZCBwdWJsaXNoIHdvcmtmbG93IHRvIE1hdmVuIENlbnRyYWwsIHdpdGggR1BHIHNpZ25pbmcgKHNlY3JldHMpXG4gKiBvciBPSURDIHRydXN0ZWQgcHVibGlzaGluZy5cbiAqL1xuZXhwb3J0IGNsYXNzIE1hdmVuQ2VudHJhbFB1Ymxpc2ggZXh0ZW5kcyBDb21wb25lbnQge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBKYXZhTWF2ZW5Qcm9qZWN0LCBvcHRpb25zOiBNYXZlbkNlbnRyYWxQdWJsaXNoT3B0aW9ucyA9IHt9KSB7XG4gICAgc3VwZXIocHJvamVjdCwgJ01hdmVuQ2VudHJhbFB1Ymxpc2gnKTtcblxuICAgIGNvbnN0IGdoID0gcHJvamVjdC5naXRodWI7XG4gICAgaWYgKCFnaCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYXZlbkNlbnRyYWxQdWJsaXNoIHJlcXVpcmVzIEdpdEh1YiBpbnRlZ3JhdGlvbicpO1xuICAgIH1cblxuICAgIGNvbnN0IHB1Ymxpc2hUYXNrOiBUYXNrID0gcHJvamVjdC5hZGRUYXNrKCdwdWJsaXNoOm1hdmVuLWNlbnRyYWwnLCB7XG4gICAgICBleGVjOiAnbXZuIC1CIGRlcGxveSAtUCByZWxlYXNlJyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHB1Ymxpc2hXb3JrZmxvdyA9IG5ldyBnaXRodWIuVGFza1dvcmtmbG93KGdoLCB7XG4gICAgICBuYW1lOiAncHVibGlzaC1tYXZlbi1jZW50cmFsJyxcbiAgICAgIGpvYklkOiAncHVibGlzaCcsXG4gICAgICB0YXNrOiBwdWJsaXNoVGFzayxcbiAgICAgIHRyaWdnZXJzOiB7IHdvcmtmbG93RGlzcGF0Y2g6IHt9IH0sXG4gICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICBjb250ZW50czogZ2l0aHViLndvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgIGlkVG9rZW46IG9wdGlvbnMubWF2ZW5DZW50cmFsT2lkY1xuICAgICAgICAgID8gZ2l0aHViLndvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLldSSVRFXG4gICAgICAgICAgOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uTk9ORSxcbiAgICAgIH0sXG4gICAgICBlbnY6IG9wdGlvbnMubWF2ZW5DZW50cmFsT2lkY1xuICAgICAgICA/IHt9XG4gICAgICAgIDoge1xuICAgICAgICAgIE1BVkVOX0dQR19QUklWQVRFX0tFWTogJyR7eyBzZWNyZXRzLk1BVkVOX0dQR19QUklWQVRFX0tFWSB9fScsXG4gICAgICAgICAgTUFWRU5fR1BHX1BBU1NQSFJBU0U6ICcke3sgc2VjcmV0cy5NQVZFTl9HUEdfUEFTU1BIUkFTRSB9fScsXG4gICAgICAgICAgTUFWRU5fQ0VOVFJBTF9VU0VSTkFNRTogJyR7eyBzZWNyZXRzLk1BVkVOX0NFTlRSQUxfVVNFUk5BTUUgfX0nLFxuICAgICAgICAgIE1BVkVOX0NFTlRSQUxfUEFTU1dPUkQ6ICcke3sgc2VjcmV0cy5NQVZFTl9DRU5UUkFMX1BBU1NXT1JEIH19JyxcbiAgICAgICAgfSxcbiAgICB9KTtcbiAgICBub3RlV29ya2Zsb3dQdXJwb3NlKFxuICAgICAgcHVibGlzaFdvcmtmbG93LmZpbGUsXG4gICAgICAnUHVibGlzaCB0aGUgYXJ0aWZhY3QgdG8gTWF2ZW4gQ2VudHJhbCBvbiBkZW1hbmQuJyxcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,22 @@
1
+ import { Component, Task, github } from 'projen';
2
+ export interface MavenUpgradeReportOptions {
3
+ /** The task that prints the available updates. */
4
+ readonly task: Task;
5
+ /** Steps that install Node, the projen toolchain, and the JDK. */
6
+ readonly setupSteps: github.workflows.JobStep[];
7
+ }
8
+ /**
9
+ * Nightly, report-only dependency check for the Maven types: runs the
10
+ * `upgrade` task (`versions:display-dependency-updates` and
11
+ * `display-plugin-updates`) and writes the available updates into the job
12
+ * summary.
13
+ *
14
+ * It deliberately changes nothing. Every version in a generated pom comes
15
+ * from `.projenrc.ts` (or this package's defaults), so rewriting `pom.xml`
16
+ * would just be reverted by the next `npx projen` and flagged by the drift
17
+ * check. Apply an update by changing the version in `.projenrc.ts`.
18
+ */
19
+ export declare class MavenUpgradeReport extends Component {
20
+ readonly workflow: github.GithubWorkflow;
21
+ constructor(scope: github.GitHubProject, options: MavenUpgradeReportOptions);
22
+ }
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MavenUpgradeReport = void 0;
4
+ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
+ const projen_1 = require("projen");
6
+ const constants_1 = require("../../common/constants");
7
+ const workflow_purpose_1 = require("../../common/workflow-purpose");
8
+ /**
9
+ * Nightly, report-only dependency check for the Maven types: runs the
10
+ * `upgrade` task (`versions:display-dependency-updates` and
11
+ * `display-plugin-updates`) and writes the available updates into the job
12
+ * summary.
13
+ *
14
+ * It deliberately changes nothing. Every version in a generated pom comes
15
+ * from `.projenrc.ts` (or this package's defaults), so rewriting `pom.xml`
16
+ * would just be reverted by the next `npx projen` and flagged by the drift
17
+ * check. Apply an update by changing the version in `.projenrc.ts`.
18
+ */
19
+ class MavenUpgradeReport extends projen_1.Component {
20
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenUpgradeReport", version: "0.0.14" };
21
+ workflow;
22
+ constructor(scope, options) {
23
+ super(scope, 'MavenUpgradeReport');
24
+ const gh = scope.github;
25
+ if (!gh) {
26
+ throw new Error('MavenUpgradeReport requires GitHub integration to be enabled');
27
+ }
28
+ this.workflow = new projen_1.github.GithubWorkflow(gh, 'upgrade');
29
+ (0, workflow_purpose_1.noteWorkflowPurpose)(this.workflow.file, 'Report available Maven dependency and plugin updates nightly (job summary only; changes nothing).');
30
+ this.workflow.on({
31
+ schedule: [{ cron: constants_1.NIGHTLY_UPGRADE_SCHEDULE }],
32
+ workflowDispatch: {},
33
+ });
34
+ this.workflow.addJob('upgrade', {
35
+ runsOn: ['ubuntu-latest'],
36
+ permissions: { contents: projen_1.github.workflows.JobPermission.READ },
37
+ steps: [
38
+ { name: 'Checkout', uses: 'actions/checkout@v7' },
39
+ ...options.setupSteps,
40
+ {
41
+ name: 'Report available updates',
42
+ run: [
43
+ 'set -o pipefail',
44
+ `npx projen ${options.task.name} | tee upgrade-report.txt`,
45
+ '{',
46
+ ' echo "## Available Maven updates"',
47
+ ' echo ""',
48
+ ' echo "Apply an update by changing its version in .projenrc.ts and running npx projen."',
49
+ ' echo ""',
50
+ ' echo \'```\'',
51
+ ' grep -E -- "->" upgrade-report.txt | sed -E "s/^\\[INFO\\] *//" | sort -u || echo "Everything is up to date."',
52
+ ' echo \'```\'',
53
+ '} >> "$GITHUB_STEP_SUMMARY"',
54
+ ].join('\n'),
55
+ },
56
+ ],
57
+ });
58
+ }
59
+ }
60
+ exports.MavenUpgradeReport = MavenUpgradeReport;
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF2ZW4tdXBncmFkZS1yZXBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvamF2YS9jb21wb25lbnRzL21hdmVuLXVwZ3JhZGUtcmVwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxtQ0FBaUQ7QUFDakQsc0RBQWtFO0FBQ2xFLG9FQUFvRTtBQVVwRTs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBYSxrQkFBbUIsU0FBUSxrQkFBUzs7SUFDL0IsUUFBUSxDQUF3QjtJQUVoRCxZQUFZLEtBQTJCLEVBQUUsT0FBa0M7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBRW5DLE1BQU0sRUFBRSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUM7UUFDeEIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO1FBQ2xGLENBQUM7UUFFRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZUFBTSxDQUFDLGNBQWMsQ0FBQyxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDekQsSUFBQSxzQ0FBbUIsRUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQ2xCLG1HQUFtRyxDQUNwRyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDZixRQUFRLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxvQ0FBd0IsRUFBRSxDQUFDO1lBQzlDLGdCQUFnQixFQUFFLEVBQUU7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1lBQzlCLE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQztZQUN6QixXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsZUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFO1lBQzlELEtBQUssRUFBRTtnQkFDTCxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLHFCQUFxQixFQUFFO2dCQUNqRCxHQUFHLE9BQU8sQ0FBQyxVQUFVO2dCQUNyQjtvQkFDRSxJQUFJLEVBQUUsMEJBQTBCO29CQUNoQyxHQUFHLEVBQUU7d0JBQ0gsaUJBQWlCO3dCQUNqQixjQUFjLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSwyQkFBMkI7d0JBQzFELEdBQUc7d0JBQ0gscUNBQXFDO3dCQUNyQyxXQUFXO3dCQUNYLDBGQUEwRjt3QkFDMUYsV0FBVzt3QkFDWCxnQkFBZ0I7d0JBQ2hCLGlIQUFpSDt3QkFDakgsZ0JBQWdCO3dCQUNoQiw2QkFBNkI7cUJBQzlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDYjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUE1Q0gsZ0RBNkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBUYXNrLCBnaXRodWIgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgTklHSFRMWV9VUEdSQURFX1NDSEVEVUxFIH0gZnJvbSAnLi4vLi4vY29tbW9uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBub3RlV29ya2Zsb3dQdXJwb3NlIH0gZnJvbSAnLi4vLi4vY29tbW9uL3dvcmtmbG93LXB1cnBvc2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hdmVuVXBncmFkZVJlcG9ydE9wdGlvbnMge1xuICAvKiogVGhlIHRhc2sgdGhhdCBwcmludHMgdGhlIGF2YWlsYWJsZSB1cGRhdGVzLiAqL1xuICByZWFkb25seSB0YXNrOiBUYXNrO1xuXG4gIC8qKiBTdGVwcyB0aGF0IGluc3RhbGwgTm9kZSwgdGhlIHByb2plbiB0b29sY2hhaW4sIGFuZCB0aGUgSkRLLiAqL1xuICByZWFkb25seSBzZXR1cFN0ZXBzOiBnaXRodWIud29ya2Zsb3dzLkpvYlN0ZXBbXTtcbn1cblxuLyoqXG4gKiBOaWdodGx5LCByZXBvcnQtb25seSBkZXBlbmRlbmN5IGNoZWNrIGZvciB0aGUgTWF2ZW4gdHlwZXM6IHJ1bnMgdGhlXG4gKiBgdXBncmFkZWAgdGFzayAoYHZlcnNpb25zOmRpc3BsYXktZGVwZW5kZW5jeS11cGRhdGVzYCBhbmRcbiAqIGBkaXNwbGF5LXBsdWdpbi11cGRhdGVzYCkgYW5kIHdyaXRlcyB0aGUgYXZhaWxhYmxlIHVwZGF0ZXMgaW50byB0aGUgam9iXG4gKiBzdW1tYXJ5LlxuICpcbiAqIEl0IGRlbGliZXJhdGVseSBjaGFuZ2VzIG5vdGhpbmcuIEV2ZXJ5IHZlcnNpb24gaW4gYSBnZW5lcmF0ZWQgcG9tIGNvbWVzXG4gKiBmcm9tIGAucHJvamVucmMudHNgIChvciB0aGlzIHBhY2thZ2UncyBkZWZhdWx0cyksIHNvIHJld3JpdGluZyBgcG9tLnhtbGBcbiAqIHdvdWxkIGp1c3QgYmUgcmV2ZXJ0ZWQgYnkgdGhlIG5leHQgYG5weCBwcm9qZW5gIGFuZCBmbGFnZ2VkIGJ5IHRoZSBkcmlmdFxuICogY2hlY2suIEFwcGx5IGFuIHVwZGF0ZSBieSBjaGFuZ2luZyB0aGUgdmVyc2lvbiBpbiBgLnByb2plbnJjLnRzYC5cbiAqL1xuZXhwb3J0IGNsYXNzIE1hdmVuVXBncmFkZVJlcG9ydCBleHRlbmRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSB3b3JrZmxvdzogZ2l0aHViLkdpdGh1YldvcmtmbG93O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBnaXRodWIuR2l0SHViUHJvamVjdCwgb3B0aW9uczogTWF2ZW5VcGdyYWRlUmVwb3J0T3B0aW9ucykge1xuICAgIHN1cGVyKHNjb3BlLCAnTWF2ZW5VcGdyYWRlUmVwb3J0Jyk7XG5cbiAgICBjb25zdCBnaCA9IHNjb3BlLmdpdGh1YjtcbiAgICBpZiAoIWdoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01hdmVuVXBncmFkZVJlcG9ydCByZXF1aXJlcyBHaXRIdWIgaW50ZWdyYXRpb24gdG8gYmUgZW5hYmxlZCcpO1xuICAgIH1cblxuICAgIHRoaXMud29ya2Zsb3cgPSBuZXcgZ2l0aHViLkdpdGh1YldvcmtmbG93KGdoLCAndXBncmFkZScpO1xuICAgIG5vdGVXb3JrZmxvd1B1cnBvc2UoXG4gICAgICB0aGlzLndvcmtmbG93LmZpbGUsXG4gICAgICAnUmVwb3J0IGF2YWlsYWJsZSBNYXZlbiBkZXBlbmRlbmN5IGFuZCBwbHVnaW4gdXBkYXRlcyBuaWdodGx5IChqb2Igc3VtbWFyeSBvbmx5OyBjaGFuZ2VzIG5vdGhpbmcpLicsXG4gICAgKTtcbiAgICB0aGlzLndvcmtmbG93Lm9uKHtcbiAgICAgIHNjaGVkdWxlOiBbeyBjcm9uOiBOSUdIVExZX1VQR1JBREVfU0NIRURVTEUgfV0sXG4gICAgICB3b3JrZmxvd0Rpc3BhdGNoOiB7fSxcbiAgICB9KTtcbiAgICB0aGlzLndvcmtmbG93LmFkZEpvYigndXBncmFkZScsIHtcbiAgICAgIHJ1bnNPbjogWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICBwZXJtaXNzaW9uczogeyBjb250ZW50czogZ2l0aHViLndvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLlJFQUQgfSxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHsgbmFtZTogJ0NoZWNrb3V0JywgdXNlczogJ2FjdGlvbnMvY2hlY2tvdXRAdjcnIH0sXG4gICAgICAgIC4uLm9wdGlvbnMuc2V0dXBTdGVwcyxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdSZXBvcnQgYXZhaWxhYmxlIHVwZGF0ZXMnLFxuICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgJ3NldCAtbyBwaXBlZmFpbCcsXG4gICAgICAgICAgICBgbnB4IHByb2plbiAke29wdGlvbnMudGFzay5uYW1lfSB8IHRlZSB1cGdyYWRlLXJlcG9ydC50eHRgLFxuICAgICAgICAgICAgJ3snLFxuICAgICAgICAgICAgJyAgZWNobyBcIiMjIEF2YWlsYWJsZSBNYXZlbiB1cGRhdGVzXCInLFxuICAgICAgICAgICAgJyAgZWNobyBcIlwiJyxcbiAgICAgICAgICAgICcgIGVjaG8gXCJBcHBseSBhbiB1cGRhdGUgYnkgY2hhbmdpbmcgaXRzIHZlcnNpb24gaW4gLnByb2plbnJjLnRzIGFuZCBydW5uaW5nIG5weCBwcm9qZW4uXCInLFxuICAgICAgICAgICAgJyAgZWNobyBcIlwiJyxcbiAgICAgICAgICAgICcgIGVjaG8gXFwnYGBgXFwnJyxcbiAgICAgICAgICAgICcgIGdyZXAgLUUgLS0gXCItPlwiIHVwZ3JhZGUtcmVwb3J0LnR4dCB8IHNlZCAtRSBcInMvXlxcXFxbSU5GT1xcXFxdICovL1wiIHwgc29ydCAtdSB8fCBlY2hvIFwiRXZlcnl0aGluZyBpcyB1cCB0byBkYXRlLlwiJyxcbiAgICAgICAgICAgICcgIGVjaG8gXFwnYGBgXFwnJyxcbiAgICAgICAgICAgICd9ID4+IFwiJEdJVEhVQl9TVEVQX1NVTU1BUllcIicsXG4gICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -9,7 +9,7 @@ const java_maven_base_1 = require("./java-maven-base");
9
9
  * explicitly excludes Maven Central, Docker, and CDK deploy hooks.
10
10
  */
11
11
  class JavaAppProject extends java_maven_base_1.JavaMavenProject {
12
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaAppProject", version: "0.0.13" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaAppProject", version: "0.0.14" };
13
13
  constructor(options) {
14
14
  super(options);
15
15
  new github_packages_publish_1.GitHubPackagesPublish(this, {
@@ -1,6 +1,10 @@
1
1
  import { JavaMavenProject } from './java-maven-base';
2
2
  import { JavaLibraryProjectOptions } from './options';
3
- /** Reusable Java library, published to Maven Central. */
3
+ /**
4
+ * Reusable Java library, published to Maven Central. Single- or
5
+ * multi-module; attaches the source and javadoc jars Central requires (in a
6
+ * reactor, every module inherits them).
7
+ */
4
8
  export declare class JavaLibraryProject extends JavaMavenProject {
5
9
  constructor(options: JavaLibraryProjectOptions);
6
10
  }
@@ -5,11 +5,22 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
5
  const code_index_workflow_1 = require("./components/code-index-workflow");
6
6
  const maven_central_publish_1 = require("./components/maven-central-publish");
7
7
  const java_maven_base_1 = require("./java-maven-base");
8
- /** Reusable Java library, published to Maven Central. */
8
+ const java_versions_1 = require("./java-versions");
9
+ /**
10
+ * Reusable Java library, published to Maven Central. Single- or
11
+ * multi-module; attaches the source and javadoc jars Central requires (in a
12
+ * reactor, every module inherits them).
13
+ */
9
14
  class JavaLibraryProject extends java_maven_base_1.JavaMavenProject {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaLibraryProject", version: "0.0.13" };
15
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaLibraryProject", version: "0.0.14" };
11
16
  constructor(options) {
12
17
  super(options);
18
+ this.addPlugin(`${java_versions_1.MAVEN_SOURCE_PLUGIN}@${this.pinnedVersion(java_versions_1.MAVEN_SOURCE_PLUGIN)}`, {
19
+ executions: [{ id: 'attach-sources', goals: ['jar-no-fork'] }],
20
+ });
21
+ this.addPlugin(`${java_versions_1.MAVEN_JAVADOC_PLUGIN}@${this.pinnedVersion(java_versions_1.MAVEN_JAVADOC_PLUGIN)}`, {
22
+ executions: [{ id: 'attach-javadocs', goals: ['jar'] }],
23
+ });
13
24
  new maven_central_publish_1.MavenCentralPublish(this, { mavenCentralOidc: options.mavenCentralOidc });
14
25
  if (options.publishCodeIndex ?? true) {
15
26
  new code_index_workflow_1.CodeIndexWorkflow(this);
@@ -17,4 +28,4 @@ class JavaLibraryProject extends java_maven_base_1.JavaMavenProject {
17
28
  }
18
29
  }
19
30
  exports.JavaLibraryProject = JavaLibraryProject;
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YS1saWJyYXJ5LXByb2plY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvamF2YS9qYXZhLWxpYnJhcnktcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMEVBQXFFO0FBQ3JFLDhFQUF5RTtBQUN6RSx1REFBcUQ7QUFHckQseURBQXlEO0FBQ3pELE1BQWEsa0JBQW1CLFNBQVEsa0NBQWdCOztJQUN0RCxZQUFZLE9BQWtDO1FBQzVDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLElBQUksMkNBQW1CLENBQUMsSUFBSSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQztRQUU5RSxJQUFJLE9BQU8sQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNyQyxJQUFJLHVDQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlCLENBQUM7SUFDSCxDQUFDOztBQVRILGdEQVVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29kZUluZGV4V29ya2Zsb3cgfSBmcm9tICcuL2NvbXBvbmVudHMvY29kZS1pbmRleC13b3JrZmxvdyc7XG5pbXBvcnQgeyBNYXZlbkNlbnRyYWxQdWJsaXNoIH0gZnJvbSAnLi9jb21wb25lbnRzL21hdmVuLWNlbnRyYWwtcHVibGlzaCc7XG5pbXBvcnQgeyBKYXZhTWF2ZW5Qcm9qZWN0IH0gZnJvbSAnLi9qYXZhLW1hdmVuLWJhc2UnO1xuaW1wb3J0IHsgSmF2YUxpYnJhcnlQcm9qZWN0T3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5cbi8qKiBSZXVzYWJsZSBKYXZhIGxpYnJhcnksIHB1Ymxpc2hlZCB0byBNYXZlbiBDZW50cmFsLiAqL1xuZXhwb3J0IGNsYXNzIEphdmFMaWJyYXJ5UHJvamVjdCBleHRlbmRzIEphdmFNYXZlblByb2plY3Qge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBKYXZhTGlicmFyeVByb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICBuZXcgTWF2ZW5DZW50cmFsUHVibGlzaCh0aGlzLCB7IG1hdmVuQ2VudHJhbE9pZGM6IG9wdGlvbnMubWF2ZW5DZW50cmFsT2lkYyB9KTtcblxuICAgIGlmIChvcHRpb25zLnB1Ymxpc2hDb2RlSW5kZXggPz8gdHJ1ZSkge1xuICAgICAgbmV3IENvZGVJbmRleFdvcmtmbG93KHRoaXMpO1xuICAgIH1cbiAgfVxufVxuIl19
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YS1saWJyYXJ5LXByb2plY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvamF2YS9qYXZhLWxpYnJhcnktcHJvamVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsMEVBQXFFO0FBQ3JFLDhFQUF5RTtBQUN6RSx1REFBcUQ7QUFDckQsbURBQTRFO0FBRzVFOzs7O0dBSUc7QUFDSCxNQUFhLGtCQUFtQixTQUFRLGtDQUFnQjs7SUFDdEQsWUFBWSxPQUFrQztRQUM1QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsbUNBQW1CLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQ0FBbUIsQ0FBQyxFQUFFLEVBQUU7WUFDbEYsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztTQUMvRCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsb0NBQW9CLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxvQ0FBb0IsQ0FBQyxFQUFFLEVBQUU7WUFDcEYsVUFBVSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztTQUN4RCxDQUFDLENBQUM7UUFFSCxJQUFJLDJDQUFtQixDQUFDLElBQUksRUFBRSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7UUFFOUUsSUFBSSxPQUFPLENBQUMsZ0JBQWdCLElBQUksSUFBSSxFQUFFLENBQUM7WUFDckMsSUFBSSx1Q0FBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQzs7QUFoQkgsZ0RBaUJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29kZUluZGV4V29ya2Zsb3cgfSBmcm9tICcuL2NvbXBvbmVudHMvY29kZS1pbmRleC13b3JrZmxvdyc7XG5pbXBvcnQgeyBNYXZlbkNlbnRyYWxQdWJsaXNoIH0gZnJvbSAnLi9jb21wb25lbnRzL21hdmVuLWNlbnRyYWwtcHVibGlzaCc7XG5pbXBvcnQgeyBKYXZhTWF2ZW5Qcm9qZWN0IH0gZnJvbSAnLi9qYXZhLW1hdmVuLWJhc2UnO1xuaW1wb3J0IHsgTUFWRU5fSkFWQURPQ19QTFVHSU4sIE1BVkVOX1NPVVJDRV9QTFVHSU4gfSBmcm9tICcuL2phdmEtdmVyc2lvbnMnO1xuaW1wb3J0IHsgSmF2YUxpYnJhcnlQcm9qZWN0T3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5cbi8qKlxuICogUmV1c2FibGUgSmF2YSBsaWJyYXJ5LCBwdWJsaXNoZWQgdG8gTWF2ZW4gQ2VudHJhbC4gU2luZ2xlLSBvclxuICogbXVsdGktbW9kdWxlOyBhdHRhY2hlcyB0aGUgc291cmNlIGFuZCBqYXZhZG9jIGphcnMgQ2VudHJhbCByZXF1aXJlcyAoaW4gYVxuICogcmVhY3RvciwgZXZlcnkgbW9kdWxlIGluaGVyaXRzIHRoZW0pLlxuICovXG5leHBvcnQgY2xhc3MgSmF2YUxpYnJhcnlQcm9qZWN0IGV4dGVuZHMgSmF2YU1hdmVuUHJvamVjdCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEphdmFMaWJyYXJ5UHJvamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcblxuICAgIHRoaXMuYWRkUGx1Z2luKGAke01BVkVOX1NPVVJDRV9QTFVHSU59QCR7dGhpcy5waW5uZWRWZXJzaW9uKE1BVkVOX1NPVVJDRV9QTFVHSU4pfWAsIHtcbiAgICAgIGV4ZWN1dGlvbnM6IFt7IGlkOiAnYXR0YWNoLXNvdXJjZXMnLCBnb2FsczogWydqYXItbm8tZm9yayddIH1dLFxuICAgIH0pO1xuICAgIHRoaXMuYWRkUGx1Z2luKGAke01BVkVOX0pBVkFET0NfUExVR0lOfUAke3RoaXMucGlubmVkVmVyc2lvbihNQVZFTl9KQVZBRE9DX1BMVUdJTil9YCwge1xuICAgICAgZXhlY3V0aW9uczogW3sgaWQ6ICdhdHRhY2gtamF2YWRvY3MnLCBnb2FsczogWydqYXInXSB9XSxcbiAgICB9KTtcblxuICAgIG5ldyBNYXZlbkNlbnRyYWxQdWJsaXNoKHRoaXMsIHsgbWF2ZW5DZW50cmFsT2lkYzogb3B0aW9ucy5tYXZlbkNlbnRyYWxPaWRjIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMucHVibGlzaENvZGVJbmRleCA/PyB0cnVlKSB7XG4gICAgICBuZXcgQ29kZUluZGV4V29ya2Zsb3codGhpcyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,15 +1,98 @@
1
1
  import { Task, github, java } from 'projen';
2
- import { CommonJavaOptions } from './options';
3
- export interface JavaMavenProjectOptions extends CommonJavaOptions {
4
- }
2
+ import { MavenModule } from './maven/maven-module';
3
+ import { MavenPom } from './maven/maven-pom';
4
+ import { JavaMavenProjectOptions, MavenModuleOptions } from './options';
5
5
  /**
6
- * Shared Maven build skeleton for all three Java project types: standard
7
- * `pom.xml`/directory layout (via `java.JavaProject`), a PR-triggered
8
- * build+test(+SonarQube) workflow that hard-fails on projen drift, and a
9
- * nightly dependency-upgrade workflow.
6
+ * Baseline Maven project, single- or multi-module, with no framework
7
+ * assumptions. It is the base of every Java type in this package and is
8
+ * usable on its own (`projen new ... java_maven`).
9
+ *
10
+ * - The pom is written by this package (`MavenPom`), not projen's
11
+ * `java.Pom`: exact versions only, BOM imports, `<modules>`,
12
+ * `<dependencyManagement>`, `<pluginManagement>`.
13
+ * - Everything Java-version-dependent (compiler level, enforcer rule, JUnit
14
+ * line, CI JDK) follows `javaVersion`.
15
+ * - With no `addModule()` calls the root pom is the artifact. After the
16
+ * first `addModule()` it is a `pom`-packaged reactor parent and the
17
+ * modules inherit its plugins and test dependencies.
18
+ * - `npx projen build` synthesizes, then runs Maven once: `mvn -B verify`
19
+ * (unit tests via surefire, `*IT` tests via failsafe).
20
+ * - CI: a PR build (with an optional SonarQube scan), the projen drift
21
+ * check, and a nightly report-only update check.
10
22
  */
11
- export declare class JavaMavenProject extends java.JavaProject {
23
+ export declare class JavaMavenProject extends github.GitHubProject {
24
+ /** The root `pom.xml`. */
25
+ readonly pom: MavenPom;
26
+ /** The canonical Java line the build targets (`1.8`, `17`, `21`, `25`). */
27
+ readonly javaVersion: string;
28
+ /** Prints available dependency/plugin updates (`npx projen upgrade`). */
12
29
  readonly upgradeTask: Task;
30
+ /**
31
+ * The PR build workflow (`build.yml`). Add jobs to it with
32
+ * `buildVerifyWorkflow.addJob(id, job)`; use `ciSetupSteps` for a job that
33
+ * needs Node, the projen toolchain, and the JDK.
34
+ */
13
35
  readonly buildVerifyWorkflow: github.TaskWorkflow;
36
+ /**
37
+ * Steps that install Node (pinned), `npm ci`, and the project's JDK with a
38
+ * Maven cache - the setup every Maven CI job in this repo needs.
39
+ */
40
+ readonly ciSetupSteps: github.workflows.JobStep[];
41
+ private readonly javaLine;
42
+ private readonly rootPackaging?;
43
+ private readonly groupId;
44
+ private readonly sample;
45
+ private readonly mavenModules;
14
46
  constructor(options: JavaMavenProjectOptions);
47
+ /** The modules added with `addModule()`, in order. */
48
+ get modules(): MavenModule[];
49
+ /**
50
+ * Adds a Maven module in `dir` (relative to the repo root; may be nested,
51
+ * e.g. `tools/stub-model`) and turns the root pom into the reactor parent
52
+ * (`packaging=pom`, `<modules>` in the order added). The parent manages
53
+ * every module at `${project.version}`, so modules depend on each other
54
+ * with `addModuleDependency()`, versionless.
55
+ */
56
+ addModule(options: MavenModuleOptions): MavenModule;
57
+ /**
58
+ * Imports a BOM into the root `<dependencyManagement>` (`type=pom`,
59
+ * `scope=import`).
60
+ *
61
+ * @param spec `groupId/artifactId@version`
62
+ */
63
+ addBom(spec: string): void;
64
+ /**
65
+ * Pins a version in the root `<dependencyManagement>` without adding the
66
+ * dependency, so modules (or the root) can use it versionless.
67
+ *
68
+ * @param spec `groupId/artifactId@version`
69
+ */
70
+ addManagedDependency(spec: string): void;
71
+ /**
72
+ * Adds a compile-scope dependency to the root pom. In a multi-module
73
+ * project every module inherits it; use `MavenModule.addDependency` for
74
+ * one module.
75
+ *
76
+ * @param spec `groupId/artifactId[@version]` - exact version, or none when
77
+ * a BOM manages it
78
+ */
79
+ addDependency(spec: string): void;
80
+ /** Adds a test-scope dependency to the root pom (inherited by every module). */
81
+ addTestDependency(spec: string): void;
82
+ /** Adds a build plugin to the root pom (inherited by every module). */
83
+ addPlugin(spec: string, options?: java.PluginOptions): void;
84
+ preSynthesize(): void;
85
+ /**
86
+ * The exact version this project uses for a `groupId/artifactId` it pins
87
+ * by default: the `pluginVersions` override if set, otherwise the
88
+ * default for `javaVersion`.
89
+ */
90
+ pinnedVersion(coordinates: string): string;
91
+ /**
92
+ * The newest Spring Boot major version `javaVersion` supports, or
93
+ * undefined when this package knows of no cap.
94
+ */
95
+ protected maxSpringBootMajor(): number | undefined;
96
+ private configureBuild;
97
+ private addSample;
15
98
  }