我有一个使用Gradle作为构建工具的项目和第二个使用Maven的POM的子项目。我没有在子项目上更改构建工具的自由。
我想要实现的是将我的项目添加到Maven POM中,作为我的Gradle项目的依赖项。
其中root(当前目录)是我的Gradle项目,并包含build.gradle
,Maven项目位于供应商/其它html" target="_blank">程序/
下,POM文件就在该目录下。
我在我的< code>build.gradle文件中尝试了这些变化:
第一次尝试:
include("vendor/other-proj/")
project(':other-proj') {
projectDir = new File("vendor/other-proj/pom.xml")
}
dependencies {
compile project(':other-proj')
}
第二次尝试:
dependencies {
compile project('vendor/other-proj/')
}
第三次尝试:
dependencies {
compile project('vendor/other-proj/pom.xml')
}
第四次尝试:
dependencies {
compile files 'vendor/other-proj/pom.xml'
}
我无法在网上找到任何相关的东西,似乎大多数Gradle / Maven用例都受到发布到Maven或生成POM的影响,但我不想做任何这些。
任何人都可以给我指出正确的方向吗?
您不能在gradle settings.gradle中“包含”maven项目。最简单的方法是构建maven项目,并使用mvn安装
(可以是default.m2或任何其他自定义位置)将其安装到本地repo,然后使用groupname:modulename:version从gradle项目中使用它
repositories{
mavenLocal()
}
dependencies{
compile 'vendor:otherproj:version'
}
使用编译文件
可以直接依赖于maven项目的jar,但这并不理想,因为它不会获取可传递的依赖项,您必须自己手动添加这些依赖项。
您可以“伪造”包括这样的Maven项目:
dependencies {
compile files("vendor/other-proj/target/classes") {
builtBy "compileMavenProject"
}
}
task compileMavenProject(type: Exec) {
workingDir "vendor/other-proj/"
commandLine "/usr/bin/mvn", "clean", "compile"
}
这样,Gradle将在编译之前执行Maven构建(< code>compileMavenProject)。但请注意,它不是传统意义上的Gradle“项目”,不会显示出来,例如,如果您运行< code>gradle dependencies。将编译好的类文件包含在你的Gradle项目中只是一个小技巧。
编辑:您可以使用类似的技术来包含maven依赖项:
dependencies {
compile files("vendor/other-proj/target/classes") {
builtBy "compileMavenProject"
}
compile files("vendor/other-proj/target/libs") {
builtBy "downloadMavenDependencies"
}
}
task compileMavenProject(type: Exec) {
workingDir "vendor/other-proj/"
commandLine "/usr/bin/mvn", "clean", "compile"
}
task downloadMavenDependencies(type: Exec) {
workingDir "vendor/other-proj/"
commandLine "/usr/bin/mvn", "dependency:copy-dependencies", "-DoutputDirectory=target/libs"
}
我通过这个链接将一个gradle项目作为依赖项导入另一个gradle项目。有没有办法将maven项目作为依赖项包含到gradle项目中?
我有一个包含多个子项目的根项目。最初,我们将这些项目作为独立的Maven项目保留,但我意识到Gradle更适合我使用。但是对于其中一个子项目,我们宁可不将其转换为Gradle项目,而将其保留为Maven项目。 root/build.gradle root/common.gradle root/api/pom.xml
我是gradle的新手,我现有的大多数项目都在ant(netbeans项目)中。 我必须为我想重用的每个项目创建gradle项目吗? 我可以在gradle项目中直接声明现有的netbean项目为依赖项吗?如果是,如何? 谢谢。
是否可以从pom.xml引用本地Gradle项目作为Maven项目的本地依赖项? 搜索很容易给我一个相反的结果--“如何从gradle Builds引用maven项目”,但不是我的情况。
在我开始之前--我看了以下链接,没有一个对我起作用(我的假设是我做错了什么): > https://appmediation.com/how-to-add-local-libraries-to-gradle/ 如何向build.gradle文件添加本地.jar文件依赖项? 在我的Gradle Java项目中使用本地jar作为依赖项 如何向build.gradle.kt文件添加本地.jar文件依赖项
我想有一个使用Spring Boot的微服务项目,它通过通过Spring Data JPA项目创建的依赖项访问实体和DAO。这个想法是多个微服务可以获得该依赖项。 然而,当jar在Spring Boot Data JPA项目中组装时,它通过starter依赖项包含了许多依赖项。其中大多数也出现在使用它的Spring Boot Microservice项目中。 您将如何通过Spring Data J