如何配置吉斯3.0 Maven的依赖于没有AOP? [英] How to configure the Maven dependency for Guice 3.0 for use without AOP?

查看:259
本文介绍了如何配置吉斯3.0 Maven的依赖于没有AOP?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个Android Maven项目,并希望使用谷歌吉斯3.0 在里面。

有吉斯是一个无AOP的版本,这与Android兼容。

我怎么能告诉行家使用无AOP版的吉斯

更新1(2013年5月3日10:46 MSK):

当我加上谷歌吉斯的依赖,给我的构建过程中以下异常( MVN全新安装

  [INFO]意外顶级例外:
[INFO] java.lang.IllegalArgumentException异常:已添加:LCOM /谷歌/注入/ ABS
tractModule;
[INFO]在com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:12
3)
[INFO]在com.android.dx.dex.file.DexFile.add(DexFile.java:163)
[INFO]在com.android.dx.command.dexer.Main.processClass(Main.java:490)
[INFO]在com.android.dx.command.dexer.Main.processFileBytes(Main.java:459)
[INFO]在com.android.dx.command.dexer.Main.access $ 400(Main.java:67)
[INFO]在com.android.dx.command.dexer.Main $ 1.processFileBytes(Main.java:398)
[INFO]在com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpen
er.java:245)
[INFO]在com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.j
AVA:131)
[INFO]在com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java
:109)
[INFO]在com.android.dx.command.dexer.Main.processOne(Main.java:422)
[INFO]在com.android.dx.command.dexer.Main.processAllFiles(Main.java:333)
[INFO]在com.android.dx.command.dexer.Main.run(Main.java:209)
[INFO]在com.android.dx.command.dexer.Main.main(Main.java:174)
[INFO]在com.android.dx.command.Main.main(Main.java:91)
[信息] 1个错误;中止

下面是我的依赖关系:

<依赖和GT;
    <&依赖性GT;
        <&的groupId GT; com.google.android< /的groupId>
        <&的artifactId GT; Android设备和LT; / artifactId的>
        <&版GT; 4.1.1.4< /版本>
        <&范围GT;及提供LT; /&范围GT;
    < /依赖性>
    <&依赖性GT;
        <&的groupId GT;的JUnit< /的groupId>
        <&的artifactId GT;的JUnit< / artifactId的>
        <&版GT; 4.8.2< /版本>
        <&范围GT;&编译LT; /&范围GT;
    < /依赖性>    <&依赖性GT;
        <&的groupId GT; com.google.inject< /的groupId>
        <&的artifactId GT;&吉斯LT; / artifactId的>
        <&版GT; 3.0< /版本>
        <分类器GT; no_aop< /分类>
    < /依赖性>    <! - 确保这个(robolectric依赖)是Android的依赖下方 - >
    <&依赖性GT;
        <&的groupId GT; com.pivotallabs< /的groupId>
        <&的artifactId GT; robolectric< / artifactId的>
        <&版GT; 1.0-RC4< /版本>
    < /依赖性>
    <&依赖性GT;
        <&的groupId GT; org.achartengine< /的groupId>
        <&的artifactId GT; achartengine< / artifactId的>
        <&版GT; 1.1.0< /版本>
    < /依赖性>
    <&依赖性GT;
        <&的groupId GT; org.easytesting< /的groupId>
        <&的artifactId GT;巨星断言芯< / artifactId的>
        <&版GT; 2.0M8< /版本>
    < /依赖性>
    <&依赖性GT;
        <&的groupId GT; ru.altruix< /的groupId>
        <&的artifactId GT;中共公共和LT; / artifactId的>
        <&版GT; 1.0.2< /版本>
    < /依赖性>
    <&依赖性GT;
        <&的groupId GT; ru.altruix< /的groupId>
        <&的artifactId GT;公共< / artifactId的>
        <&版GT; 1.11 LT; /版本>
    < /依赖性>
    <&依赖性GT;
        <&的groupId GT;&LT com.fasterxml.jackson.core; /的groupId>
        <&的artifactId GT;杰克逊核心和LT; / artifactId的>
        <&版GT; 2.1.4< /版本>
    < /依赖性>
    <&依赖性GT;
        <&的groupId GT;&LT com.fasterxml.jackson.core; /的groupId>
        <&的artifactId GT;杰克逊和数据绑定LT; / artifactId的>
        <&版GT; 2.1.4< /版本>
    < /依赖性>
< /依赖和GT;


解决方案

您需要指定 no_aop 作为这样的分类:

 <&依赖性GT;
   <&的groupId GT; com.google.inject< /的groupId>
   <&的artifactId GT;&吉斯LT; / artifactId的>
   <&版GT; 3.0< /版本>
   <分类器GT; no_aop< /分类>
< /依赖性>

I have an Android Maven project and want to use Google Guice 3.0 in it.

There is a "No-AOP" version of Guice, which is compatible with Android.

How can I tell to use the "No-AOP" version of ?

Update 1 (03.05.2013 10:46 MSK):

When I add the dependency on Google Guice, I get following exception during the build (mvn clean install):

[INFO] UNEXPECTED TOP-LEVEL EXCEPTION:
[INFO] java.lang.IllegalArgumentException: already added: Lcom/google/inject/Abs
tractModule;
[INFO]  at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:12
3)
[INFO]  at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
[INFO]  at com.android.dx.command.dexer.Main.processClass(Main.java:490)
[INFO]  at com.android.dx.command.dexer.Main.processFileBytes(Main.java:459)
[INFO]  at com.android.dx.command.dexer.Main.access$400(Main.java:67)
[INFO]  at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:398)
[INFO]  at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpen
er.java:245)
[INFO]  at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.j
ava:131)
[INFO]  at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java
:109)
[INFO]  at com.android.dx.command.dexer.Main.processOne(Main.java:422)
[INFO]  at com.android.dx.command.dexer.Main.processAllFiles(Main.java:333)
[INFO]  at com.android.dx.command.dexer.Main.run(Main.java:209)
[INFO]  at com.android.dx.command.dexer.Main.main(Main.java:174)
[INFO]  at com.android.dx.command.Main.main(Main.java:91)
[INFO] 1 error; aborting

Here are my dependencies:

<dependencies>
    <dependency>
        <groupId>com.google.android</groupId>
        <artifactId>android</artifactId>
        <version>4.1.1.4</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8.2</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>com.google.inject</groupId>
        <artifactId>guice</artifactId>
        <version>3.0</version>
        <classifier>no_aop</classifier>
    </dependency>

    <!-- Make sure this (robolectric dependency) is below the android dependencies -->
    <dependency>
        <groupId>com.pivotallabs</groupId>
        <artifactId>robolectric</artifactId>
        <version>1.0-RC4</version>
    </dependency>
    <dependency>
        <groupId>org.achartengine</groupId>
        <artifactId>achartengine</artifactId>
        <version>1.1.0</version>
    </dependency>
    <dependency>
        <groupId>org.easytesting</groupId>
        <artifactId>fest-assert-core</artifactId>
        <version>2.0M8</version>
    </dependency>
    <dependency>
        <groupId>ru.altruix</groupId>
        <artifactId>ccp-commons</artifactId>
        <version>1.0.2</version>
    </dependency>
    <dependency>
        <groupId>ru.altruix</groupId>
        <artifactId>commons</artifactId>
        <version>1.11</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.1.4</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.1.4</version>
    </dependency>
</dependencies>

解决方案

You need to specify no_aop as classifier like this:

<dependency>
   <groupId>com.google.inject</groupId>
   <artifactId>guice</artifactId>
   <version>3.0</version>
   <classifier>no_aop</classifier>
</dependency>

这篇关于如何配置吉斯3.0 Maven的依赖于没有AOP?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆