2015-01-13 18 views
11

मैं कुछ नया प्रयास करना चाहता हूं और मेरे डी ढांचे के रूप में डैगर 2 का उपयोग करना चाहता हूं। तो मेरे पास मेरे प्रोजेक्ट में निम्न पोम और "हैलो वर्ल्ड" कॉफी मेकर क्लासेस (http://google.github.io/dagger/) है।डैगर 2 कोई वर्ग उत्पन्न नहीं

लेकिन जब मैं एक एमवीएन क्लीन स्थापित करता हूं तो कोई वर्ग उत्पन्न नहीं होता है। जहां तक ​​मैं अनजान हूं वहां उत्पन्न "डैगर_Cफीशॉप" वर्ग होना चाहिए। हमम ... मुझे क्या याद आ रही है?

<modelVersion>4.0.0</modelVersion> 

<groupId>kic</groupId> 
<artifactId>xfoo</artifactId> 
<version>0.1-SNAPSHOT</version> 

<packaging>jar</packaging> 

<properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <maven.compiler.source>1.8</maven.compiler.source> 
    <maven.compiler.target>1.8</maven.compiler.target> 
</properties> 

<dependencies> 
    <dependency> 
     <groupId>com.google.dagger</groupId> 
     <artifactId>dagger</artifactId> 
     <version>2.0-SNAPSHOT</version> 
    </dependency> 

    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>4.11</version> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 


<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.1</version> 
      <dependencies> 
       <dependency> 
        <groupId>com.google.dagger</groupId> 
        <artifactId>dagger-compiler</artifactId> 
        <version>2.0-SNAPSHOT</version> 
       </dependency> 
      </dependencies> 
     </plugin> 
    </plugins> 
</build> 
+0

मैं एक ही समस्या है। मेरे मामले में मैंने सीधे जेएआर फाइलों को डाउनलोड किया क्योंकि मुझे विश्वास नहीं है कि वे अभी तक मेवेन सेंट्रल में प्रकाशित हुए थे। मुझे लगता है कि मुझे इसे पहले संकलित करने की आवश्यकता है, फिर लाइन जोड़ें: कॉफी कॉफी = Dagger_CoffeeApp $ Coffee.builder()। Build()। लेकिन Dagger_CoffeeApp कभी उत्पन्न नहीं होता है। मुझे डैगर के साथ कोई समस्या नहीं थी 1. – nogridbag

उत्तर

9

Gradle का उपयोग कर उन लोगों के लिए: सुनिश्चित करें कि आप निम्नलिखित के रूप में डैगर निर्भरता संदर्भित कर रहे हैं:

compile 'com.google.dagger:dagger:2.0.2' 
apt 'com.google.dagger:dagger-compiler:2.0.2' 

और मामले में आप apt में समर्थित नहीं चला रहे हैं,

1 जोड़) मॉड्यूल में app\build.gradle:

apply plugin: 'com.neenbedankt.android-apt'

2) परियोजना \build.gradle में:

buildscript { 
    dependencies { 
     classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 
    } 
} 
+0

यह उत्तर है। गंभीरता से कारण, जो Gradle का लाभ नहीं ले रहा है। – worked

+0

क्योंकि अब मैं धीरे-धीरे उपयोग करता हूं ... – KIC

1

यह सबसे अच्छा जवाब नहीं है। जब मैंने डाउनलोड की गई JAR फ़ाइलों का उपयोग किया (नीचे पीओएम फ़ाइल में टिप्पणी की गई) मेरा भी Dagger_ फ़ाइलों को उत्पन्न नहीं कर रहा था। एक बार जब मैंने पीओएम को भंडार जोड़ा, तो सब कुछ ठीक काम कर रहा था।

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.hello</groupId> 
    <artifactId>hellodagger</artifactId> 
    <version>1.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>hellodagger</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <repositories> 
    <repository> 
     <id>sonatype</id> 
     <name>sonatype-repo</name> 
     <url>https://oss.sonatype.org/content/repositories/snapshots/</url> 
    </repository> 
    </repositories> 

    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
     <dependency> 
     <groupId>com.google.dagger</groupId> 
     <artifactId>dagger</artifactId> 
     <version>2.0-SNAPSHOT</version> 
     <!--<scope>system</scope>--> 
     <!--<systemPath>${project.basedir}/dagger-2.0-20141216.223138-12.jar</systemPath>--> 
     </dependency> 
     <dependency> 
     <groupId>com.google.dagger</groupId> 
     <artifactId>dagger-compiler</artifactId> 
     <version>2.0-SNAPSHOT</version> 
     <optional>true</optional> 
     <!--<scope>system</scope>--> 
     <!--<systemPath>${project.basedir}/dagger-compiler-2.0-20141216.223201-12-jar-with-dependencies.jar</systemPath>--> 
     </dependency> 
    </dependencies> 
</project> 
5

मैं केवल रिलीज़ संस्करण 2.0 के साथ एक ही समस्या थी,।

  • अपने निर्माण पथ
  • <plugin> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>3.1</version> 
        <dependencies> 
         <dependency> 
          <groupId>com.google.dagger</groupId> 
          <artifactId>dagger-compiler</artifactId> 
          <version>2.0</version> 
         </dependency> 
        </dependencies> 
        <configuration> 
         <source>1.8</source> 
         <target>1.8</target> 
         <!-- workaround for http://jira.codehaus.org/browse/MCOMPILER-202 --> 
         <forceJavacCompilerUse>true</forceJavacCompilerUse> 
        </configuration> 
    </plugin> 
    

भी देखें Maven संकलक प्लगइन को <forceJavacCompilerUse>true</forceJavacCompilerUse> जोड़ने के लिए target/generated-sources/annotations जोड़ना:

मेरे मामले में निम्नलिखित दो कदम इस समस्या का समाधान :

संबंधित मुद्दे