如何在Eclipse中将Java Maven项目依赖正确添加到Grails Maven项目中

4
我正在使用以下工具:
  • Eclipse Kepler Service Release 2
  • M2E - Maven Integration for Eclipse 1.4.0.xxx
  • Grails 2.1.2
  • Groovy/Grails Tool Suite 3.4.0
我的解决方案是创建一个Grails应用程序,然后将其转换为Maven项目,并通过“Java Build Path”->“Projects”选项添加Java Maven项目作为依赖项。但是,每次我想运行Grails应用程序时,Grails应用程序都无法解析来自其他Java Maven项目的那些类。这可能是一个非常简单的问题,但我迄今为止找不到任何解决方案。
提前感谢您的帮助!
3个回答

11

我认为更好的方法是将您的jar包发布到本地存储库,然后通过配置BuildConfig.groovy文件,将其作为依赖项添加到您的grails应用程序中:

1)将您的本地maven存储库添加到项目中:

repositories {
    inherits true
    checksums false
    grailsPlugins()
    mavenLocal()
    mavenCentral()
    }

2) 添加依赖项:

dependencies {
compile: "<your_group_id> : <your_artifact_id> : <version>"
...
}

在Grails环境中启动项目时,它会自动下载您的jar文件。

不,你不能在 BuildConfig.groovy 中引用一个 Maven 化的 Grails 项目的依赖项。该依赖项必须放在 pom.xml 中。 - dmahapatro
我同意,但作为一种通用方法,我建议如果您可以保留Grails依赖项构建器而不是Maven POM,则使用该方法。它具有一些优点,如可靠性,并且将与下一个Grails版本兼容(Gradle应该很快就会按照Grails 3.0路线图出现)。 - ludo_rj
通常开发人员会告诉你要添加的Maven仓库:maven { url "https://..." },以及所需的编译命令,就像答案中所说的那样。 - Ratata Tata

2
我曾遇到过无法解析独立于Maven模块的类更改的问题。对我效果良好的方法如下:
  • 将依赖项添加到Grails项目的pom.xml中(以便您可以在IDE之外构建)
  • 不要向Grails项目添加Maven特性。其他项目仍将具有Maven特性,但不应再加入Grails项目。
  • 在Grails项目的属性中,选择Java Build Path -> Projects并添加其他Maven项目。这允许Eclipse立即找到其他项目的更改。
  • 启用JRebel启动Grails(以便您可以重新加载独立Maven模块中的Java类更改)
以上步骤可以使GGTS 3.4和Grails 2.1.2中的类平滑重新加载,而无需重建jar文件或重新启动服务器。后续版本中可能会改进Maven集成,因此上述解决方法可能已不再必要。

2

该库项目必须是Maven项目,然后您需要在“Main”项目的pom.xml文件中添加依赖项。

你的项目的依赖部分可能看起来像这样

<dependencies>
        <dependency>
            <groupId>your-library-project-group</groupId>
            <artifactId>your-library-artifact-id</artifactId>
            <version>your-library-version</version>
            <scope>compile</scope>
        </dependency>
</dependencies>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接