I have an MIT licensed project and I want to use a BSD-3 library as a package. The BSD-3 library will only be used for implementation purposes, so the users of the MIT project will not be able to use it directly. No files will be copied from the BSD-3 library, just the package used via a build tool (e.g. Gradle) that will be hosted on maven central, so the compile can pass. Furthermore, I will be publishing the MIT project on maven central as a package, and from there on, people can do whatever they want with it.
Is that possible? Or I must change the MIT to BSD-3? I know that if something is licensed under BSD-3 it can't be re-licensed into MIT (although the opposite is true), but does the same apply with linking too?
Suppose I open up a .txt file in the MIT project and start writting code. In that code I make calls to functions that exist in the BSD-3 library, but there are no implementations, no packages and definitely no function copy pasting from the BSD-3 libary to the MIT project, just characters in a .txt file. Of course, it will not pass the compile because of missing function definitions. The question here is: Am I really using the BSD-3 library? Am I obligated to its license?
If the anwser is: Yes you are using the BSD-3 library and therefore you are obligated by its license, then the anwser to the main question is that I can't link a BSD-3 library to an MIT project. But, if the answer here is No, then there just might be hope, so let me demonstrate the next case.
Having a file that does not compile is useless, so you add a non-transitive depedency on the BSD-3 library, so the compiler can actually understand all those function calls. Does that depedency addition make it impossible for the project to be MIT licensed? Isn't a depedency like saying: "Hey, this is code with some symbols in it that make no sense. But, you can make sense of them using that library, here's the link to it.". I guess, declearing a depedency does not count as redistributing the libary, right?