2015-09-25 47 views
9

Şirketimin ürettiği kütüphane için javadocs'ları düzeltmek istiyorum. Javadocları, gerçekten kamu tüketimine yönelik olmayan sınıflardan (çoğunlukla içeride kullanılan sınıflar) dışlamak istiyoruz.Javadoc İthalatta hatalara neden oluyor

Proje, derleme sistemini kullandı ve build.gradle dosyasında hariç tutmak istediğimiz paketleri/sınıfları işaretledim. Ancak, bu hatalara neden oluyor. Dışlanan bir sınıfa @link olması durumunda bir uyarı veya hata almayı bekliyorum, ancak bu hariç tutulan sınıflar basitçe içe aktarıldığında da hatalar atıyor. Sınıfları/paketleri "dahil etmek" için bir yol var mı, ama javadoc'u onlara ihraç ETMEYİN?

Düzenleme:

task gendocs(type: Javadoc) { 
    options.stylesheetFile = new File("./assets/doc_style.css") 
    String v = "${SEMVER}" 
    version = v.replace("_", '.') 
    title = "SweetBlue ${version} API" 
    options.windowTitle = "SweetBlue" 
    options.memberLevel = JavadocMemberLevel.PROTECTED 
    options.author = true 
    options.linksOffline('http://d.android.com/reference', System.getenv("ANDROID_HOME") + '/docs/reference')  
    destinationDir = new File("${BUNDLE_FOLDER}/docs/api") 
    source = sourceSets.main.allJava 
    classpath += configurations.compile 
    exclude "com/idevicesinc/sweetblue/backend" 
    exclude "com/idevicesinc/sweetblue/utils/Utils**.java" 
    exclude "com/idevicesinc/sweetblue/utils/UpdateLoop.java" 
    exclude "com/idevicesinc/sweetblue/utils/Pointer.java" 
    exclude "com/idevicesinc/sweetblue/utils/HistoricalDataQuery.java" 
} 

Düzenleme 2: çıkarılacak

Görünen:

SweetBlue/src/com/idevicesinc/sweetblue/BleCharacteristic.java:5: error: cannot find symbol 
import com.idevicesinc.sweetblue.utils.Utils;          
symbol: class Utils 
location: package com.idevicesinc.sweetblue.utils 

Edit 3: Burada bahsettiğim hata var Burada alakalı javadoc görev javadoc görevinin komut satırında -exclude kullanması ile aynı şey bir javadoc görev değil. CLI javadoc neslini kullanarak bir test yaptım ve Gradle kullanırken yaptığım hataları bulamadım. Javadoc'un içe aktarılan sınıf hakkında bilmesi gerekir.

+0

Birisi, ne tür hatalarla ilgili bilgi vermediğinizde neler olduğunu nasıl teşhis edebilir? Önemli değil, ama "Utils **. Java" deseninin yararlı bir şey yaptığını sanmıyorum. Bu muhtemelen sadece "Utils * .java" olmalıdır. –

+0

OP'yi, başvurduğum hatayla güncelledim. Sanırım daha önce yeterince açık değildim. Utils için sahip olduğum şey sadece iyi çalışıyor (Utils ile başlayan çok sayıda sınıf var). Uygun şekilde hariç tutulurlar. –

+0

Fikirlerim tükendi. Gradle forumuna ayrıntılı bir not gönderin. –

cevap

2

Javadoc'a sınıf yolunu kullanarak java kaynak kodundan ziyade sınıf dosyalarını nerede bulacağını söyle!

Aynı sorun, bir karınca ortamında çok sayıda javadoc hatası üreten XJC tarafından oluşturulan kodla aynı sorunu yaşadım. javadoc dokümanlardan bu kişileri dışlamak ama hala tatmin etmek amacıyla ben sadece bin klasörü içine bakmak için javadoc görevi anlattı:

<target name="javadoc" description="create Javadoc documentation"> 
    <javadoc ...lots of irrelevant attributes skipped...> 
     <fileset dir="src"> 
      <include name="**/*.java"/> 
      <exclude name="my/jaxb/generated/source/*.java"/> 
     </fileset> 
     <classpath> 
      <path refid="myclasspath_to_referenced_libraries"/> 
      <pathelement location="bin"/> 
     </classpath> 
    </javadoc> 
</target> 
0

Yani sorun harici ithalatı bulunduğu Javadoc görevi söylemek zorunda, böylece Javadoc HTML'de (Hyper) -kutları oluşturabilir. Gradle Doc göre

task gendocs(type: Javadoc) { 
    failOnError false 
    ... 
} 

: Harici sınıflara linkleri umurumda değil Eğer birlikte tezler sorunları görmezden olabilir hatalar Javadoc oluşturma sırasında karşılaşılan bu görevin başarısız olması

olup olmayacağını belirtir. Doğru olduğunda, bu görev Javadoc hatası üzerinde başarısız olur. Yanlış olduğunda, bu görev Javadoc hatalarını görmezden gelecektir.

İlgili konular