-
-
Notifications
You must be signed in to change notification settings - Fork 422
Add BOM / dependency management support #3924
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 27 commits
910e8a4
4f5f070
3e8643d
f796d0c
bc5e1b3
425b4aa
732c659
17259c0
a8b86e3
67ff17a
067d84d
17c3084
c143182
a45ddd6
d601c44
20f59c5
8c00ccb
f53fd8d
c549b21
06b0c5b
1828975
c9054a3
3dbc225
b260f6f
e13a102
9c75f73
97cb113
13fdbca
8e28493
7950d4f
4f78fe8
03857e0
745b500
26b5c54
f286477
8aa498a
61b6061
5bd61aa
73f5c10
e5fe19f
169a747
2a5ca63
26116a9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,200 @@ | ||
| package build | ||
|
|
||
| import mill._ | ||
| import mill.scalalib._ | ||
| import mill.scalalib.publish._ | ||
|
|
||
| trait TestPublishModule extends PublishModule { | ||
| def pomSettings = PomSettings( | ||
| description = artifactName(), | ||
| organization = "com.lihaoyi.mill-tests", | ||
| url = "https://github.com/com-lihaoyi/mill", | ||
| licenses = Seq(License.`Apache-2.0`), | ||
| versionControl = VersionControl.github("com-lihaoyi", "mill"), | ||
| developers = Nil | ||
| ) | ||
| def publishVersion = "0.1.0-SNAPSHOT" | ||
| } | ||
|
|
||
| object bom extends Module { | ||
| object placeholder extends JavaModule with TestPublishModule { | ||
| def bomDeps = Agg( | ||
| ivy"com.google.cloud:libraries-bom:26.50.0" | ||
| ) | ||
| def ivyDeps = Agg( | ||
| ivy"com.google.protobuf:protobuf-java:_" | ||
|
||
| ) | ||
|
|
||
| object dependee extends JavaModule with TestPublishModule { | ||
| def moduleDeps = Seq( | ||
| placeholder | ||
| ) | ||
| } | ||
|
|
||
| object subDependee extends JavaModule with TestPublishModule { | ||
| def moduleDeps = Seq( | ||
| dependee | ||
| ) | ||
| } | ||
|
|
||
| object check extends JavaModule { | ||
| def ivyDeps = Agg( | ||
| ivy"com.google.protobuf:protobuf-java:_" | ||
| ) | ||
| } | ||
| } | ||
|
|
||
| object versionOverride extends JavaModule with TestPublishModule { | ||
| def bomDeps = Agg( | ||
| ivy"com.google.cloud:libraries-bom:26.50.0" | ||
| ) | ||
| def ivyDeps = Agg( | ||
| ivy"com.thesamet.scalapb:scalapbc_2.13:0.9.8" | ||
| ) | ||
|
|
||
| object dependee extends JavaModule with TestPublishModule { | ||
| def moduleDeps = Seq( | ||
| versionOverride | ||
| ) | ||
| } | ||
|
|
||
| object subDependee extends JavaModule with TestPublishModule { | ||
| def moduleDeps = Seq( | ||
| dependee | ||
| ) | ||
| } | ||
|
|
||
| object check extends JavaModule { | ||
| def ivyDeps = Agg( | ||
| ivy"com.thesamet.scalapb:scalapbc_2.13:0.9.8" | ||
| ) | ||
| } | ||
| } | ||
|
|
||
| object invalid extends Module { | ||
| object exclude extends JavaModule { | ||
| def bomDeps = Agg( | ||
| ivy"com.google.cloud:libraries-bom:26.50.0".exclude(("foo", "thing")) | ||
| ) | ||
| } | ||
| } | ||
| } | ||
|
|
||
| object parent extends JavaModule with TestPublishModule { | ||
| def parentDep = Some(ivy"org.apache.spark:spark-parent_2.13:3.5.3") | ||
| def ivyDeps = Agg( | ||
| ivy"org.apache.commons:commons-compress:_" | ||
| ) | ||
|
|
||
| object dependee extends JavaModule with TestPublishModule { | ||
| def moduleDeps = Seq( | ||
| parent | ||
| ) | ||
| } | ||
|
|
||
| object subDependee extends JavaModule with TestPublishModule { | ||
| def moduleDeps = Seq( | ||
| dependee | ||
| ) | ||
| } | ||
|
|
||
| object scala extends ScalaModule with TestPublishModule { | ||
| def scalaVersion = _root_.scala.util.Properties.versionNumberString | ||
| def parentDep = Some(ivy"org.apache.spark::spark-parent:3.5.3") | ||
| def ivyDeps = Agg( | ||
| ivy"org.apache.commons:commons-compress:_" | ||
| ) | ||
| } | ||
|
|
||
| object invalid extends Module { | ||
| object exclude extends JavaModule { | ||
| def parentDep = Some( | ||
| ivy"org.apache.spark:spark-parent_2.13:3.5.3".exclude(("foo", "thing")) | ||
| ) | ||
| } | ||
| } | ||
| } | ||
|
|
||
| object depMgmt extends JavaModule with TestPublishModule { | ||
| def ivyDeps = Agg( | ||
| ivy"com.thesamet.scalapb:scalapbc_2.13:0.9.8" | ||
| ) | ||
| def dependencyManagement = Agg( | ||
| ivy"com.google.protobuf:protobuf-java:4.28.3" | ||
| ) | ||
|
|
||
| object transitive extends JavaModule with TestPublishModule { | ||
| def moduleDeps = Seq(depMgmt) | ||
| } | ||
|
|
||
| object extraExclude extends JavaModule with TestPublishModule { | ||
| def ivyDeps = Agg( | ||
| ivy"com.lihaoyi:cask_2.13:0.9.4" | ||
| ) | ||
| def dependencyManagement = Agg( | ||
| // The exclude should be automatically added to the dependency above | ||
| // thanks to dependency management, but the version should be left | ||
| // untouched | ||
| ivy"com.lihaoyi:cask_2.13:0.9.3" | ||
| .exclude(("org.slf4j", "slf4j-api")) | ||
| ) | ||
|
|
||
| object transitive extends JavaModule with TestPublishModule { | ||
| def moduleDeps = Seq(extraExclude) | ||
| } | ||
| } | ||
|
|
||
| object exclude extends JavaModule with TestPublishModule { | ||
| def ivyDeps = Agg( | ||
| ivy"com.lihaoyi:cask_2.13:0.9.4" | ||
| ) | ||
| def dependencyManagement = Agg( | ||
| ivy"org.java-websocket:Java-WebSocket:1.5.2" | ||
| .exclude(("org.slf4j", "slf4j-api")) | ||
| ) | ||
|
|
||
| object transitive extends JavaModule with TestPublishModule { | ||
| def moduleDeps = Seq(exclude) | ||
| } | ||
| } | ||
|
|
||
| object onlyExclude extends JavaModule with TestPublishModule { | ||
| def ivyDeps = Agg( | ||
| ivy"com.lihaoyi:cask_2.13:0.9.4" | ||
| ) | ||
| def dependencyManagement = Agg( | ||
| ivy"org.java-websocket:Java-WebSocket:_" | ||
| .exclude(("org.slf4j", "slf4j-api")) | ||
| ) | ||
|
|
||
| object transitive extends JavaModule with TestPublishModule { | ||
| def moduleDeps = Seq(onlyExclude) | ||
| } | ||
| } | ||
|
|
||
| object invalid extends Module { | ||
| object transitive extends JavaModule { | ||
| def dependencyManagement = { | ||
| val dep = ivy"org.java-websocket:Java-WebSocket:1.5.3" | ||
| Agg( | ||
| dep.copy( | ||
| dep = dep.dep.withTransitive(false) | ||
| ) | ||
| ) | ||
| } | ||
| } | ||
| } | ||
|
|
||
| object placeholder extends JavaModule with TestPublishModule { | ||
| def ivyDeps = Agg( | ||
| ivy"com.google.protobuf:protobuf-java:_" | ||
| ) | ||
| def dependencyManagement = Agg( | ||
| ivy"com.google.protobuf:protobuf-java:4.28.3" | ||
| ) | ||
|
|
||
| object transitive extends JavaModule with TestPublishModule { | ||
| def moduleDeps = Seq(placeholder) | ||
| } | ||
| } | ||
| } | ||
Uh oh!
There was an error while loading. Please reload this page.