【问题标题】:How to correctly add a Java Maven project dependency to a Grails Maven project in eclipse如何在 Eclipse 中正确地将 Java Maven 项目依赖项添加到 Grails Maven 项目
【发布时间】:2014-03-22 15:57:59
【问题描述】:

我正在使用:

  • Eclipse Kepler 服务版本 2
  • M2E - Eclipse 1.4.0.xxx 的 Maven 集成
  • Grails 2.1.2
  • Groovy/Grails 工具套件 3.4.0

我的方法是创建一个 Grails 应用程序,然后将其转换为 Maven 项目,然后通过“Java 构建路径”->“项目”选项添加一个 Java Maven 项目作为依赖项。 但是每次我想运行 Grails 应用程序时,Grails 应用程序都无法从我的其他 Java Maven 项目中解析这些类。 可能是一个非常简单的问题,但到目前为止我找不到任何解决方案。

提前谢谢你!

【问题讨论】:

    标签: java eclipse maven grails groovy


    【解决方案1】:

    我认为更好的方法是将 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 env 中启动你的项目时,它会自动下载你的 jar

    【讨论】:

    • 不,您不能在 BuildConfig.groovy 中为 mavenized grails 项目引用依赖项。依赖项必须转到 pom.xml。
    • 我同意,但作为通用方法,如果您可以保留 grails 依赖项构建器而不是 maven pom,我建议使用该方法。它具有可靠性等优点,并且将与下一个 grails 版本兼容(gradle 应该会在 grails 3.0 路线图之后很快出现)。
    • 通常开发人员会告诉您要添加的 maven repo:maven { url "https://..." } 和答案所需的编译命令。
    【解决方案2】:

    我遇到了同样的问题,无法在单独的 Maven 模块中解决对类的更改。对我有用的是:

    • 在Grails项目的pom.xml中添加依赖(这样就可以在IDE之外构建了)
    • 不要不要将 Maven 特性添加到 Grails 项目中。其他项目仍将具有 Maven 特性,但 Grails 项目不应。
    • 在 Grails 项目的 Properties 中,选择 Java Build Path -> Projects 并添加其他 Maven 项目。这允许 Eclipse 立即找到对其他项目的更改。
    • 在启用 JRebel 的情况下启动 Grails(以便您可以在单独的 Maven 模块中重新加载对 Java 类的更改)

    上述步骤允许在 GGTS 3.4 和 Grails 2.1.2 中顺利重新加载类,而无需重新构建 jar 或重新启动服务器。可能是 Maven 集成在以后的版本中有所改进,因此不再需要上述解决方法。

    【讨论】:

      【解决方案3】:

      库项目必须是 Maven 项目,然后您必须将依赖项添加到“主”项目中的 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>
      

      【讨论】:

        猜你喜欢
        • 2012-11-28
        • 2010-09-13
        • 1970-01-01
        • 2012-10-22
        • 1970-01-01
        • 1970-01-01
        • 2018-02-10
        • 2012-01-20
        • 2013-02-13
        相关资源
        最近更新 更多