【问题标题】:Eclipse: don't include some maven dependencies at runtimeEclipse:在运行时不要包含一些 Maven 依赖项
【发布时间】:2011-07-04 14:56:21
【问题描述】:

我在 Eclipse 中运行一个 GWT + GAE Maven 项目,它依赖于 lombok jar:

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>0.9.3</version>
        <scope>provided</scope>
    </dependency>

然后我使用 Google Plugin for Eclipse 启动我的应用程序。
一切正常,除了 lombok jar 在运行时存在于类路径中(System.getProperty("java.class.path") 显示该 jar 已包含在内)。这应该是a cause some issues with app engine / datanucleus

我检查过:
- jar 没有复制到 war/WEB-INF/lib 文件夹中
- jar 存在于项目构建路径的 Maven 依赖项中
- Maven 依赖项自动包含在项目配置的 Classpath 中。

我正在寻找一种避免 jar 成为运行时类路径一部分的方法。

提前感谢您提供的任何提示,

塞巴斯蒂安

【问题讨论】:

  • 使用最新版本的 lombok (0.10.0-RC1) 解决了这个问题。等待给予的时间来回答我自己的问题。
  • 很高兴听到你解决了它! ;-)

标签: eclipse gwt maven classpath lombok


【解决方案1】:

您需要将scope 定义为provided。这假设您将在运行时为您的应用程序提供依赖项。当然,它将用于编译您的代码。

【讨论】:

  • 抱歉,太晚更正原帖。我使用的依赖项具有“提供”范围;事实上,jar 没有复制到 WBE-INF/lib 文件夹中。但是,Maven 似乎仍然将其视为依赖项,并且在运行时包含它
  • 啊...好吧...好吧,那么也许 GWT 应用程序运行程序正在将它添加到类路径...?
  • 我用来启动应用程序的配置是: Program Arguments: -remoteUI "${gwt_remote_ui_server_port}:${unique_id}" -startupUrl TheFiveOrbs.jsp -logLevel INFO -server com.google.appengine.tools.development.gwt.AppEngineLauncher -port 8888 -codeServerPort 9997 -war "D:\Dev\Projects\The Five Orbs\trunk\target\fiveorbs-0.1" com.fiveorbs.TheFiveOrbs VM arguments -javaagent:D:\Dev\Programs\apengine-java-sdk\lib\agent\appengine-agent.jar -Xmx512m -Dappengine.sdk.root=D:\Dev\Programs\appengine-java-sdk
【解决方案2】:
【解决方案3】:

使用最新版本的 lombok (0.10.0-RC1) 解决了这个问题。

【讨论】:

    猜你喜欢
    • 2011-11-07
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    • 1970-01-01
    • 2012-04-08
    • 2012-05-23
    • 2023-03-30
    相关资源
    最近更新 更多