如何使用Maven将第三方库导入到使用Gradle的Java项目中?

bogh5gae  于 2023-02-28  发布在  Java
关注(0)|答案(2)|浏览(145)

我想在我儿子学校的机器人代码中使用sxcml-java库(目前是一个私人repo)。
库使用Maven。我能够使用Maven成功地将库包含在测试项目中。
然而,我刚刚发现现有的机器人项目代码使用Gradle,我不知道Maven或Gradle,而且我已经将近30年没有用Java编程了。
在机器人技术项目中,如何最轻松地使用scxml-java(它本身具有外部第三方依赖项)?

  • 此问题与this one类似,但解决方案很简单,因为两个项目都使用Gradle。*
py49o6xq

py49o6xq1#

如果包在工件中发布(请参见here),您可以将其作为任何其他Gradle依赖项(使用groupId、artifactId和版本)包含在内,而不管最初使用什么构建系统来构建它。

dependencies {
    implementation 'com.nosolojava.fsm:scxml-java-implementation:1.0.1'
}

如果您使用IntelliJ IDEA,将Maven依赖项块粘贴到build.gradle文件中会自动将其转换为Gradle依赖项格式,如上图所示。
但是请注意,此does not apply to plugins仅适用于常规依赖项。

wfveoks0

wfveoks02#

如果您将您的jar或第三方jar安装到maven本地存储库(如~/.m2

您可以添加mavenLocal()

repositories {
    mavenCentral()    
    // * Require by Use JAR install to Maven Local Repo your .m2
    mavenLocal()
}

然后将实现添加到依赖项

dependencies {
  implementation 'com.google.guava:guava:31.1-jre'
  implementation 'yourGroupId:yourArtifactId:yourVersion'
}

请从pom.xmlMap您的组ID、工件ID和版本

如果您只将第三方jar下载到/home/yourName/your-libs等文件夹中

您可以添加配置

configurations {
    sxcml-java-lib
}

然后添加依赖项

dependencies {
  implementation 'com.google.guava:guava:31.1-jre'
  
  //sxcml-java-lib fileTree(dir: "${System.getProperty("user.home")}/libs", include: "*.jar")
  sxcml-java-lib fileTree(dir: "/home/yourName/your-libs", include: "*.jar")
}

相关问题