জাভাদোক ট্যাগগুলি অসম্পূর্ণ থাকলে মাভেন জাভা 8 এ কাজ করছেন না


312

যেহেতু আমি মাভেন ব্যবহার করি আমি আমার স্থানীয় সংগ্রহস্থল প্রকল্পগুলিতে অসম্পূর্ণ জাভাদোক ট্যাগ রয়েছে (উদাহরণস্বরূপ, অনুপস্থিত পরামিতি) তৈরি করতে এবং ইনস্টল করতে সক্ষম হয়েছি।

যাইহোক, যেহেতু আমি জাভা 8 (1.8.0-ea-b90) তে স্থানান্তরিত হয়েছি মভেন ডকুমেন্টেশন ট্যাগ অনুপস্থিত সম্পর্কে একেবারে কঠোর এবং যখন জাভাডোক নয় এমন একটি প্রকল্প তৈরি বা ইনস্টল করার চেষ্টা করি তখন জাভাদোক সমস্যার সাথে সম্পর্কিত প্রচুর জাভাদোক ত্রুটি দেখান "নিখুঁত"। আমি আমার স্থানীয় সংগ্রহস্থলে সংকলন এবং ইনস্টল করার চেষ্টা করছি এমন কয়েকটি প্রকল্প তৃতীয় পক্ষের প্রকল্পগুলি যার থেকে আমার নিয়ন্ত্রণ নেই। সুতরাং এই সমস্ত প্রকল্পে সমস্ত জাভাদোকগুলি ঠিক করার কাজটি আমার দৃশ্যে সম্ভব বলে মনে হচ্ছে না।

আমি mvn clean package installআমার প্রোজেক্টে এক্সিকিউট করার সময় আমি যে আউটপুটটি দেখি তা এটির একটি ছোট অংশ :

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.026s
[INFO] Finished at: Mon Apr 08 21:06:17 CEST 2013
[INFO] Final Memory: 27M/437M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.9:jar (attach-javadocs) on project jpc: MavenReportException: Error while creating archive:
[ERROR] Exit code: 1 - /Users/sergioc/Documents/workspaces/heal/jpc/src/main/java/org/jpc/engine/prolog/PrologDatabase.java:10: error: @param name not found
[ERROR] * @param terms the terms to assert
[ERROR] ^
[ERROR] /Users/sergioc/Documents/workspaces/heal/jpc/src/main/java/org/jpc/engine/prolog/PrologDatabase.java:11: warning: no description for @return
[ERROR] * @return
[ERROR] ^

জাভাডোক মাভেন প্লাগইনটি আমার পোমে এইভাবে কনফিগার করা হয়েছে:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>2.9</version>
    <executions>
        <execution>
            <id>attach-javadocs</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

যেমনটি আমি আগেই বলেছি, আমি আবার জাভা 7. এ ফিরে গেলে সবকিছু ঠিকঠাক কাজ করছে Maybe সম্ভবত এটি জাভা 8 এ মাভেনের সাথে চালিত কোনও বাগ সম্পর্কিত? আমি জাভা 8 দিয়ে কীভাবে এটি কাজ করতে পারি (অর্থাত্ প্রকল্পের জাভাদোক তৈরি করতে এবং এর কোডটি আমার স্থানীয় সংগ্রহস্থলে ইনস্টল করতে সক্ষম)? আমি ওএসএক্সে ম্যাভেন 3.0.3 এবং 3.0.5 উভয়ই দিয়ে পরীক্ষা করেছি।

হালনাগাদ:

যদি আমি আমার জাভাদোক প্লাগইন কনফিগারেশনটি <failOnError>false</failOnError>(ধন্যবাদ মার্টিন) দিয়ে পরিবর্তন করি :

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>2.9</version>
    <executions>
        <execution>
            <id>attach-javadocs</id>
            <goals>
                <goal>jar</goal>
            </goals>
        </execution>
    </executions>
</plugin>

তারপরে আমার স্থানীয় সংগ্রহস্থলে প্রকল্পটি ইনস্টল করা হবে। তবে জাভাডোক জেআর এখনও তৈরি হয় নি।

এই নতুন কনফিগারেশনের সাথে কনসোলে যে আউটপুটটি আমি দেখতে পাচ্ছি তা হ'ল:

[ত্রুটি] মাভেনআরপুর্ট এক্সেপশন: সংরক্ষণাগারটি তৈরি করার সময় ত্রুটি: প্রস্থান কোড: 1 - / ব্যবহারকারীরা / জাজা 18: সতর্কতা: না @ পরিম ... কমান্ড লাইনটি ছিল: / গ্রন্থাগার / জাভা / হোম / বিন / জাভাদোক @ অপশন @packages

'/ ব্যবহারকারী / সার্জিওক / ডকুমেন্টস / ওয়ার্কস্পেসস / হিল / মিনিটুলবক্স / টার্গেট / এপিডোকস' জিরের জ্যাভাদোক ফাইলগুলি দেখুন।

org.apache.maven.plugin.javadoc.AbstractJavadocMojo.executeJavadocCommandLine (AbstractJavadocMojo.java:5043) এ org.apache.maven.plugin.javadoc.AbstractJavadocmajor..corx.ojcacoutecogeecexute .javadoc.JavadocJar.execute (JavadocJar.java1811) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:101) org.apache.mavenxececojecoecorctorjecoecorctorja : 209) org.apache.maven.lifecycle.intern.MojoExecutor.execute (MojoExecutor.java:153) এ org.apache.maven.lifecycle.intern.MojoExecutor.execute (MojoExecutor.javaટર45) এ org.apache এ। maven.lifecycle.intern.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.intern.LifecycleModuleBuilder।org.apache.maven.lifecycle.intern.LifecycleStarter.singleThreadedBuild (LifecycleStarter.javaimar83) at org.apache.maven.lifecycleSenter.LifecySterter.terterterterterterterterterterterterterterter.ctraterter.ctraterter.ctraterter.ctraterter.ctraterter.ctraterter। org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:320) at org.apache.maven.DefaultMaven.execute (DefaultMaven.java156) at org.apache.maven.cli.MavenCli.execute (MavenCli.java) : 537) org.apache.maven.cli.MavenCli.doMain (MavenCli.java:196) at org.apache.maven.cli.MavenCli.main (MavenCli.java:141) at sun.reflect.NativeMethodAccessorImpl.invoke0 ( নেটিভ মেথড) sun.reflect.NativeMethodAccessorImpl.invoke (নেটিভমেথোডএকসেসরআইএমপিএল.জভা.৫ava) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) at java.lang.reod.ref।org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java entitled90) এ org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java એવોেশন 30) এ (মেথড.জভা ৪৪৯১) আবেদন করুন org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:409) এ org.codehaus.plexus.classworlds.launcher.Launcher.main এ (লঞ্চার.জভা ৩৪২)

কীভাবে উত্স তৈরি করতে, প্রকল্পটি ইনস্টল করতে এবং জাভাডোক জেআর একসাথে জাভা Java এর সাথে কাজ করার সাথে সাথে কীভাবে তৈরি করা যায় সে সম্পর্কে কোনও ধারণা?


হাই @ 75inchpianist, আমি প্রশ্নটি আপডেট করেছি, বাস্তবে এগুলি ত্রুটি (যদিও আশ্চর্যজনকভাবে যথেষ্ট যে ত্রুটির শেষ লাইনটি একটি সতর্কতা বোঝায়, আপনি উত্পন্ন আউটপুটে দেখতে পাচ্ছেন)। প্রকল্পটি আমার স্থানীয় সংগ্রহস্থলে ইনস্টল করা নেই, সুতরাং এটি সাধারণ সতর্কতা হিসাবে বিবেচনা করা হয় না :(
সেরজিও

গুগলজুইসের জন্য: আমি ত্রুটিটি পেয়েছি "ত্রুটি: '>' এর খারাপ ব্যবহার" কারণ জাভাডকের মন্তব্যে আমার একটি বড় তীর ছিল
ড্রিউ স্টিফেন্স

1
হয়তো এটি কারওর জন্য উপকারী হবে: আপনি পরিদর্শন চালিয়ে ইন্টেলিজজে এই সমস্ত অসম্পূর্ণ ট্যাগটি সহজেই খুঁজে পেতে পারেন Ctrl + Alt + Shift + i "ঘোষণায় জাভাডকের সমস্যা আছে"
সের্গে পোনোমারেভ

1
এটি ম্যাভেন নয়, জাভাডোক প্রোগ্রাম যা জাভা ৮
অ্যান্ডারসেন

উত্তর:


387

জাভাডোক ত্রুটিগুলি সমাধান করা ভাল সমাধান হবে। যদি কোনও কারণে এটি সম্ভব না হয় (যেমন: স্বয়ংক্রিয় উত্পন্ন উত্স কোড) তবে আপনি এই চেকটি অক্ষম করতে পারেন।

ডকলিন্ট জাভা 8-এ একটি নতুন বৈশিষ্ট্য , যা সংক্ষেপে এইভাবে দেওয়া হয়েছে :

বিকাশ চক্রের শুরুর দিকে জাভাদোক মন্তব্যে ত্রুটিগুলি সনাক্ত করার একটি উপায় সরবরাহ করুন এবং সোর্স কোডের সাথে সহজেই আবার যুক্ত হয়ে যাওয়া এমন একটি উপায়।

এটি ডিফল্টরূপে সক্ষম করা হয়েছে এবং জাভাদোকস উত্পাদন করার আগে পুরো প্রচুর চেক চালাবে। এই থ্রেডে বর্ণিত হিসাবে আপনাকে জাভা 8 এর জন্য এটি বন্ধ করতে হবে । আপনাকে এটি আপনার খাঁটি কনফিগারেশনে যুক্ত করতে হবে:

<profiles>
  <profile>
    <id>java8-doclint-disabled</id>
    <activation>
      <jdk>[1.8,)</jdk>
    </activation>
    <properties>
      <javadoc.opts>-Xdoclint:none</javadoc.opts>
    </properties>
  </profile>
</profiles>
<build>
  <plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.9</version>
        <executions>
            <execution>
                <id>attach-javadocs</id>
                <goals>
                    <goal>jar</goal>
                </goals>
                <configuration>
                    <additionalparam>${javadoc.opts}</additionalparam>
                </configuration>
            </execution>
        </executions>
    </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.3</version>
        <configuration>
          <reportPlugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
              <configuration>
                <additionalparam>${javadoc.opts}</additionalparam>
              </configuration>
            </plugin>
          </reportPlugins>
        </configuration>
      </plugin>
   </plugins>
</build>

ম্যাভেন-জাভাদোক-প্লাগইন 3.0.0+ এর জন্য: প্রতিস্থাপন করুন

<additionalparam>-Xdoclint:none</additionalparam>

সঙ্গে

<doclint>none</doclint>

18
জেডিকে 8 এর পাশাপাশি জেডিকে 7 দিয়ে এই কাজ করার কোনও উপায় আছে কি ? এটি জেডিকে on এ ব্যর্থ হয় কারণ এটি javadocএই বিকল্পটি জানে না।
ফিউমুরমেল

8
এই উত্তর প্রশ্ন এখানে জিজ্ঞাসা করার সময়, আমি প্রথম peterh এর উত্তর চেক করতে পরামর্শ ভবিষ্যতে দর্শকদের চাই: stackoverflow.com/a/34809831/1180785 (অধিকাংশ মানুষ এই সমস্যাটি আঘাত শুধুমাত্র ফিক্স কাছের স্থান একটি থাবা থাকবে, তাই এটি ভালো চেকটি অক্ষম করার চেয়ে তাদের ঠিক করার জন্য!)
ডেভ

8
মেভেন-জাভাদোক-প্লাগইন ব্যবহার করুন <doclint>none</doclint>। দেখুন maven.apache.org/plugins/maven-javadoc-plugin/...
coolersport

11
এছাড়াও ম্যাভেন-জাভাদোক-প্লাগইন 3.0.0, এর <additionalparam/>দ্বারা প্রতিস্থাপিত হয়েছে <additionalOptions/>। দেখুন issues.apache.org/jira/browse/MJAVADOC-475
fdelsert

1
এটাই সঠিক. আমি জানাতে চাই যে ম্যাভেন 2 থেকে ম্যাভেন 3-এ স্থানান্তরের সময়, এই প্লাগইন ট্যাগটি রিপোর্টিং ট্যাগের মধ্যে অন্তর্ভুক্ত করা উচিত নয় তবে সরাসরি প্লাগইন ম্যানেজমেন্ট (pom.xML)
ডায়মরোস

97

জাভা 8 এবং জাভা 7 উভয় দিয়েই কাজ করার সহজ উপায় হল বিল্ডে একটি প্রোফাইল ব্যবহার করা:

<profiles>
  <profile>
    <id>doclint-java8-disable</id>
    <activation>
      <jdk>[1.8,)</jdk>
    </activation>

    <build>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <configuration>
            <additionalparam>-Xdoclint:none</additionalparam>
          </configuration>
        </plugin>
      </plugins>
    </build>
  </profile>
</profiles>

1
সেরা সমাধান সম্ভবত আপনার সমাধান এবং একটি Zapp সরবরাহ করা bellow মধ্যে একটি হাইব্রিড হতে পারে। আপনি যদি এভাবে ছেড়ে যান তবে এমভিএন সাইট: সাইট কমান্ডটি এখনও ক্র্যাশ করবে। আপনার 1.8 জেডি কে দ্বারা সক্রিয় একটি প্রোফাইল তৈরি করা উচিত যা বিশ্বব্যাপী সম্পত্তি সেট করে।
ম্যাক্স নাদ

64

জাভা সংস্করণ ব্যবহার না করেই আমি নীতি-সতর্কতা সতর্কতাগুলিকে অগ্রাহ্য করার বিষয়ে সবচেয়ে সচেতন উপায়। সামান্য পরিবর্তন সহ একাধিক প্রোফাইলে প্লাগইন কনফিগারেশনটির সদৃশ করার দরকার নেই।

<profiles>
  <profile>
    <id>doclint-java8-disable</id>
    <activation>
      <jdk>[1.8,)</jdk>
    </activation>
    <properties>
      <javadoc.opts>-Xdoclint:none</javadoc.opts>
    </properties>
  </profile>
</profiles>

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <version>2.9.1</version>
      <executions>
        <execution>
          <id>attach-javadocs</id> <!-- The actual id should be apparent from maven output -->
          <configuration>
            <additionalparam>${javadoc.opts}</additionalparam>
          </configuration>
        </execution>
      </executions>
    </plugin>
    ...
  </plugins>
</build>

ওরাকল / ওপেন জেডিকে 6, 7, 8 এবং 11 এ পরীক্ষিত।


1
এবং যেখানে বিশেষভাবে করা উচিত?
পরিষ্কার

1
ক্লেয়ারলাইট, উভয়ই buildএবং ম্যাভেনের profilesশীর্ষ স্তরের ব্লক pom.xmlmaven.apache.org/pom.html# বিল্ড
অলিভার গন্ডিয়া

ধন্যবাদ। আমি অবশেষে এটি আবিষ্কার করেছি, তবে এই উত্তরটির সাথে এটি যুক্ত হওয়া ভাল।
5:58

38

পম ফাইলে বিশ্বব্যাপী বৈশিষ্ট্য বিভাগে যুক্ত করুন:

<project>
    ...
    <properties>
        <additionalparam>-Xdoclint:none</additionalparam>
    </properties>

অন্যান্য উত্তরে এখানে প্রদত্ত সাধারণ সমাধান (প্লাগইন বিভাগে সেই সম্পত্তি যুক্ত করে) কোনও কারণে কাজ করে না। কেবলমাত্র বিশ্বব্যাপী এটি সেট করেই আমি জাভাদোক জারটি সফলভাবে তৈরি করতে পারলাম।


1
এটি আমার জন্য কাজ করা একমাত্র সমাধান। আমি এখানে
উত্তরটিও

37

সংক্ষিপ্ততম সমাধান যা কোনও জাভা সংস্করণের সাথে কাজ করবে:

<profiles>
    <profile>
        <id>disable-java8-doclint</id>
        <activation>
            <jdk>[1.8,)</jdk>
        </activation>
        <properties>
            <additionalparam>-Xdoclint:none</additionalparam>
        </properties>
    </profile>
</profiles>

এটি কেবল আপনার পোমে যোগ করুন এবং আপনি যেতে ভাল।

এটি মূলত @ আনকনের উত্তর প্লাস @ জ্যাপের উত্তর


মেভেন-জাভাদোক-প্লাগইন 3.0.0 ব্যবহারকারীদের জন্য:

প্রতিস্থাপন করা

<additionalparam>-Xdoclint:none</additionalparam>

দ্বারা

<doclint>none</doclint>


এটি আমার পক্ষে সেরা সমাধান। এটি বট জাভা 7 এবং জাভা 8 এর জন্য কাজ করে তবে এটি যেভাবে কাজ করে তা এক ধরণের যাদু: এই প্যারামিটারটি কীভাবে "অতিরিক্তপরাম" প্লাগইন জাভাদোকে যুক্ত হয় (এবং অন্যদের কাছে নয়)
পিডিএম

1
@ পিডিএম অতিরিক্ত প্যারামিটারটি ম্যাভেন-এ যুক্ত করা হয়েছে, জাভাদোক প্লাগইনে নয়। আপনি সুনির্দিষ্টভাবে প্লাগইন ব্যবহার করছেন কিনা তা এই সমাধানটি কার্যকর করে।
ফ্রেড পোরসিঙ্কুলা

2
ম্যাভেন-জাভাদোক-প্লাগইন 3.0.০.০ থেকে আপনাকে আপনার নিজের সম্পত্তি <additionalJOption>-Xdoclint:none</additionalJOption>বা <doclint>none</doclint>সম্পত্তি যুক্ত করতে হবে<properties>
সের্গি

হ্যাঁ, জেডিকে 8 সম্পর্কিত প্রোফাইল যুক্ত করা এবং <ডক্লিন্ট> কোনওটি </ ডক্লিন্ট> সেট করে নেওয়া সমস্যার সমাধান করে। এটি জেডিএক 7.-এ যেমন জ্যাভডোক জার তৈরি করেছিল তেমনই উত্স তৈরি করে Thanks ধন্যবাদ।
সৌরভসিডিটি

1
আপনি কি স্পষ্ট করতে পারেন: মেভেন-জাভাদোক-প্লাগইন 3.0.০.০ এবং এর উপরে, আমি যদি কেবল সুনির্দিষ্টভাবে <doclint>none</doclint>(কোন জেডিকে সংস্করণ-ভিত্তিক অ্যাক্টিভেশন না দিয়ে) নির্দিষ্ট করে থাকি, তবে এটি জেডিকে ১.৮ এরও কম ব্যর্থ হবে, বা ম্যাভেন-জাভাদোক-প্লাগইন স্বয়ংক্রিয়ভাবে সনাক্ত করবে কিনা doclintবিকল্প জাভা এর বর্তমান সংস্করণ দ্বারা সমর্থিত?
গ্যারেট উইলসন

31

আমি মনে করি না যে কেবল ডকলিন্ট বন্ধ করা একটি ভাল সমাধান, কমপক্ষে দীর্ঘমেয়াদী নয়। এটা ভাল যে জাভাদোক কিছুটা কড়া হয়ে গেছে তাই বিল্ড সমস্যার সমাধানের সঠিক উপায় হ'ল অন্তর্নিহিত সমস্যাটি ঠিক করা । হ্যাঁ, আপনাকে শেষ পর্যন্ত সেই উত্স কোড ফাইলগুলি ঠিক করতে হবে।

আপনি যেগুলি আগে এড়িয়ে যেতে পারতেন তা সন্ধান করার জন্য এখানে এখানে রয়েছে:

  • ত্রুটিযুক্ত এইচটিএমএল (উদাহরণস্বরূপ একটি অনুপস্থিত শেষ-ট্যাগ, অব্যাহত বন্ধনী ইত্যাদি)
  • অবৈধ {@link }এস। (একই ধরণের ট্যাগগুলির জন্য একই যায় @see)
  • অবৈধ @authorমান। এটি গ্রহণ করা হত: @author John <john.doe@mine.com>তবে আর পালানো বন্ধনীগুলির কারণে আর তা নয়।
  • জাভাডকের এইচটিএমএল টেবিলগুলির জন্য এখন একটি সংক্ষিপ্তসার বা ক্যাপশন প্রয়োজন। ব্যাখ্যা জন্য এই প্রশ্ন দেখুন ।

আপনাকে কেবল আপনার উত্স কোড ফাইলগুলি ঠিক করতে হবে এবং আপনার জাভাদোকটি তৈরি করতে থাকবে যতক্ষণ না এটি ব্যর্থতা ছাড়াই তৈরি করতে পারে। হ্যাঁ জটিল, তবে ব্যক্তিগতভাবে আমি পছন্দ করি যখন আমি আমার প্রকল্পগুলি ডকলিন্ট স্তরে নিয়ে এসেছি কারণ এর অর্থ আমি যে আরও বেশি আত্মবিশ্বাসী হতে পারি যে আমি যে জাভাদোক তৈরি করি তা আসলে আমার উদ্দেশ্য।

সমস্যাটি অবশ্যই আছে যদি আপনি কোনও উত্স কোডে জাভাদোক তৈরি করে থাকেন তবে আপনি নিজের তৈরি করেন নি, উদাহরণস্বরূপ কারণ এটি কিছু কোড জেনারেটর, যেমন ডাব্লুএসপোর্ট থেকে আসে । আশ্চর্যের বিষয় যে জেদকে 8 রিলিজ করার আগে ওরাকল জেডিকে 8 সম্মতির জন্য তাদের নিজস্ব সরঞ্জাম প্রস্তুত করেনি। দেখে মনে হচ্ছে এটি জাভা 9 পর্যন্ত স্থির হবে না । কেবলমাত্র এই বিশেষ ক্ষেত্রেই আমি এই পৃষ্ঠার অন্য কোথাও নথিভুক্ত হিসাবে ডকলিঙ্কটি বন্ধ করার পরামর্শ দিই।


1
সম্পূর্ণরূপে এখানে একমত, যা বলেছে যে, উত্পন্ন কোডের জন্য আপনি জাভাদোক প্লাগইনসের কনফিগারেশন বিভাগে একটি ব্যয়প্যাকেজনামস বিভাগ যুক্ত করে কোনও প্রদত্ত প্যাকেজে কোড প্রক্রিয়া না করার জন্য প্লাগইনকে কেবল বলতে পারেন can দেখতে maven.apache.org/plugins/maven-javadoc-plugin/examples/...
Newtopian

@Newtopian। ভাল যুক্তি. তবে আমার ক্ষেত্রে wsimportজাভাডকের অংশ হওয়ার জন্য আসলে উত্পন্ন কোডটি আমার দরকার ছিল ।
পিটারহ

এটি এত সহজ হয়ে গেছে যেহেতু আমাদের অনেকগুলি এই সমস্যাগুলির মধ্যে দৌড়াদৌড়ি করে অপরিচিত ওপেনসোর্স কোড তৈরি করার চেষ্টা করছে যা কোথাও একটি মাভেন নির্ভরতা রয়েছে এবং আমাদের কী ধারণা এটি কীভাবে কাজ করে, তাই অন্তর্নিহিত কারণগুলির সমাধান করার সহজ উপায় নেই। প্রসঙ্গটি সম্পর্কে অনেক বেশি মায়োপিয়া রয়েছে। লোকেরা উত্তরগুলির পরিধি আরও সাধারণ করতে হবে এবং কীভাবে সমাধানগুলি করা যায় সে সম্পর্কে আরও সুনির্দিষ্টভাবে সরবরাহ করতে হবে।
পরিষ্কার

30

maven-javadoc-pluginকেবল ওভাররাইড কনফিগারেশনই সমস্যাটি ঠিক করে না mvn site(যেমন মুক্তির পর্যায়ে যেমন ব্যবহৃত হয়েছে)। আমাকে যা করতে হয়েছিল তা এখানে:

<profile>
  <id>doclint-java8-disable</id>
  <activation>
    <jdk>[1.8,)</jdk>
  </activation>
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <configuration>
          <additionalparam>-Xdoclint:none</additionalparam>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.3</version>
        <configuration>
          <reportPlugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
              <configuration>
                <additionalparam>-Xdoclint:none</additionalparam>
              </configuration>
            </plugin>
          </reportPlugins>
        </configuration>
      </plugin>
    </plugins>
  </build>
</profile>

3
এটি একটি গুরুত্বপূর্ণ বিষয় কারণ সাইট-প্লাগইন অ্যাক্টিভেশনটিতে এই সেটিংটির অভাব মুক্তির কারণ ঘটবে: মুক্তির সময় ব্যর্থ হতে হবে: প্রস্তুতি ভাল কাজ করেছে। এটি খুঁজে পেতে এবং ঠিক করতে খুব বিরক্তিকর সমস্যা হতে পারে।
পিটার এন। স্টেইনমেটজ 11'15

মনে রাখবেন, যে কনফিগারেশন maven-javadoc-pluginমাধ্যমে <reportPlugins>বিভাগে maven-site-pluginহয় বাঞ্ছনীয় নয় ম্যাভেন 3. সাম্প্রতিক সংস্করণের জন্য
মার্টিন Holler

@ মার্টিনহোলার সুতরাং মুক্তির ক্ষেত্রে ত্রুটিগুলি কীভাবে সমাধান করবেন: মাভেন-জাভাদোক-প্লাগইন সম্পর্কিত পর্যায়ে সঞ্চালন করুন: 3.0.1 সঠিকভাবে?
ভিটালি দিরভকা

@ ভিটালিডিরাভকা ত্রুটিগুলির উপর নির্ভর করে ... দয়া করে এর জন্য একটি পৃথক প্রশ্ন জিজ্ঞাসা করুন।
মার্টিন হোলার

22

আপনি এখানে failOnErrorসম্পত্তি সেট করার চেষ্টা করতে পারেন ( প্লাগইন ডকুমেন্টেশন দেখুন ) false:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>2.9</version>
    <executions>
        <execution>
            <id>attach-javadocs</id>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration>
              <failOnError>false</failOnError>
            </configuration>
        </execution>
    </executions>
</plugin>

আপনি ডক্স থেকে দেখতে পাচ্ছেন, ডিফল্ট মান true


@ মার্টিন এই ধারণার জন্য ধন্যবাদ। কমপক্ষে আমি এই সম্পত্তিটি দিয়ে আবার প্রকল্পটি তৈরি করতে এবং ইনস্টল করতে পারি, তবে আমি এখনও জাভা ডক জারটি অনুপস্থিত (মাভেনের কেন্দ্রীয়তে এটি মোতায়েন করার দরকার আমার)। আমি পরীক্ষার বিবরণ দিয়ে আমার প্রশ্ন আপডেট করেছি।
সার্জিও

এটি আমার পক্ষে সবচেয়ে উপযুক্ত উত্তর ছিল। জাভাদোকগুলি এখনও অসম্পূর্ণ ছিল যখন আমি চলমান বিকাশের সময় বিল্ডিং পরীক্ষা করতে চেয়েছিলাম।
জ্যাচস্যান্ড

17

যেহেতু এটি আপনার জেআরই এর সংস্করণে নির্ভর করে যা মাভেন কমান্ডটি চালানোর জন্য ব্যবহৃত হয় আপনি সম্ভবত pom.xML এ DocLintডিফল্ট হিসাবে অক্ষম করতে চান না

সুতরাং, কমান্ড লাইন থেকে আপনি সুইচটি ব্যবহার করতে পারেন -Dadditionalparam=-Xdoclint:none

উদাহরণ: mvn clean install -Dadditionalparam=-Xdoclint:none


3
এটি বিশেষত দরকারী কারণ আপনি এটি জেনকিন্সও ব্যবহার করতে পারেন। 'গ্লোবাল MAVEN_OPTS' সেট করুন ('কনফিগার সিস্টেমের অধীনে') -Dadditionalparam=-Xdoclint:noneএবং আপনার সমস্ত বিল্ড জাভা ৮ এর সাথে কাজ করবে
উইলফ্রেড হিউজেস

mvn org.apache.maven.plugins:maven-javadoc-plugin:3.1.0:jar -DadditionalJOption=-Xdoclint:none- এটি আমার পক্ষে কাজ করেছে
রোমান খোমশনেটস

10

ম্যাভেন-জাভাদোক-প্লাগইনের সর্বশেষ সংস্করণে কনফিগারেশনের বৈশিষ্ট্যের নাম পরিবর্তন করা হয়েছে যা 3.0.0।

সুতরাং <additionalparam> কাজ করবে না। সুতরাং আমরা নীচের হিসাবে এটি পরিবর্তন করতে হবে।

   <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <version>3.0.0</version>
      <configuration>
         <doclint>none</doclint>
      </configuration>
  </plugin>

doclintডকুমেন্টেশন এখানে দেখুন : maven.apache.org/plugins/maven-javadoc-plugin/…
পিটার ডাব্লু

আমার ফেব্রুয়ারী 19 এ গিথুব উত্স থেকে ওপেনগ্রোক নির্মাণের জন্য এটি সমাধান করেছেন। আপনার প্যাচটি pom.xmlপ্রকল্পের এসআরসি / বিল্ড ডিরেক্টরিতে গিয়ে উল্লেখ করা উচিত । আমার ক্ষেত্রে আমাকে যা করতে হবে তা হ'ল অনুসন্ধান maven-javadoc-pluginএবং তারপরে <configuration></configuration>ইতিমধ্যে উপস্থিত ব্লকে গিয়ে যুক্ত করে <doclint>none</doclint>। এগুলি এত সহজেই যে কেউ একবার জেনে যায়, এখানে প্রসঙ্গটি আমি ওপেনগ্রকে একটি পৃথক বাগ সংশোধন করার চেষ্টা করছি এবং মাভেনের আগে কখনও ব্যবহার করিনি এবং অন্য উপ প্রকল্পে পুনরাবৃত্তি করতে চাই না কেবল চিত্রিত করতে কীভাবে দ্রুত সমাধানগুলি প্রয়োগ করতে হবে out
স্পষ্টলাইট

4

আমি অন্যান্য উত্তরগুলিতে কিছু অন্তর্দৃষ্টি যুক্ত করতে চাই

আমার ক্ষেত্রে

-Xdoclint: None

কাজ হয়নি।

আমার প্রকল্পে এটি দিয়ে শুরু করা যাক, আমার আসলে জাভাদোকের কোনও দরকার নেই। কেবলমাত্র কিছু প্রয়োজনীয় প্লাগইন এটির উপর একটি বিল্ড টাইম নির্ভরতা পেয়েছিল।

সুতরাং, আমার সমস্যা সমাধানের সবচেয়ে সহজ উপায় হ'ল:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <configuration>
        <skip>true</skip>
    </configuration>
</plugin>

ধন্যবাদ, জাভা 11
voldy

4

ম্যাভেন-জাভাদোক-প্লাগইন 3.0.০.০ হিসাবে আপনার অতিরিক্ত জাভাদোক বিকল্প সেট করতে অতিরিক্ত জেপশন ব্যবহার করা উচিত ছিল , তাই যদি আপনি জাভাদোক ডক্লিন্টটি অক্ষম করতে চান তবে আপনার নীচের সম্পত্তিটি যুক্ত করা উচিত।

<properties>
    ...
    <additionalJOption>-Xdoclint:none</additionalJOption>
    ...
<properties>

আপনার মেভেন-জাভাদোক-প্লাগইনটির সংস্করণও 3.0.0 বা উচ্চতর হিসাবে উল্লেখ করা উচিত।

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-javadoc-plugin</artifactId>
    <version>3.0.0</version>    
</plugin>

3

সুতরাং, নিজেকে কয়েক ঘন্টা সংরক্ষণ করুন যা আমি করি নি এবং এটি যদি কাজ করে না বলে মনে হয় তবে এটি চেষ্টা করুন:

 <additionalJOption>-Xdoclint:none</additionalJOption>

নতুন সংস্করণগুলির জন্য ট্যাগটি পরিবর্তন করা হয়েছে।



কখনও কখনও -Xdoclintনিজেই যথেষ্ট হয় না, তবে অতিরিক্ত আরোগুলি প্রয়োজন। -এর একটি নবীনতর সংস্করণ maven-javadoc-pluginপ্রদান additionalJOptionsযে জন্য, পুরোনো না। একটি কার্যকারণ হ'ল: <additionalJOption>"-Xdoclint:none" "--allow-script-in-comments"</additionalJOption>উদ্ধৃতিগুলি গুরুত্বপূর্ণ, অন্যথায় প্লাগইন সেগুলি যুক্ত করে এবং দু'টির পরিবর্তে কেবল একটি আর্গ ধরে নেয়, ফলে wrong argsত্রুটি হয়।
থর্স্টেন শেনিং

পূর্ববর্তীটি কেবল উইন্ডোজের পরিবর্তে লিনাক্সে কাজ করে: javadoc: error - Illegal package name: ""-Xdoclint:none" "--allow-script-in-comments""বহিরাগত উদ্ধৃতিগুলি লগিং স্টেটমেন্ট দ্বারা যুক্ত হয় এবং শেলটিতে উপস্থিত হয় না। আমার ধারণা সমস্যাটি হ'ল উইন্ডোজ javadocদ্বারা চালিত হয় cmd.exeযা একটি বড় স্ট্রিংকে কমান্ড লাইন হিসাবে পার্স করে additionalJOptionএবং উদ্দেশ্য অনুসারে বিভক্ত করে । লিনাক্সে আরোগুলি পৃথকভাবে সরাসরি প্রক্রিয়াতে additionalJOptionপ্রেরণ করা হয় এবং ত্রুটির দিকে পরিচালিত করে একটি যুক্তি হিসাবে পাস করা হয়।
থারস্টেন শেনিং

মতে Process Monitor, cmd.exeব্যবহার করা হয় না। জাভা সম্ভবত একটি বৃহত কমান্ড লাইন তৈরি করে এবং এটি পাস করে CreateProcess, যাতে এটি উইন্ডোজ দ্বারা উদ্দেশ্য হিসাবে পার্স করা যায়: কোটগুলি সম্মানের সময় ফাঁকা জায়গায় আরগগুলি বিভক্ত করা।
থারস্টেন শেনিং

3

নীচে যুক্ত করা হয়েছে

JAVA_TOOL_OPTIONS=-DadditionalJOption=-Xdoclint:none

জেনকিন্স কাজের মধ্যে:

কনফিগারেশন> বিল্ড এনভায়রনমেন্ট> বিল্ড প্রসেস> প্রোপার্টি কনটেন্টে এনভায়রনমেন্ট ভেরিয়েবল ইনজেক্ট করুন

জেনকিনস মাভেনের মাধ্যমে কোড বিল্ডিংয়ের আমার সমস্যাটি সমাধান করুন :-)


এটি ম্যাভেন-জাভাদোক-প্লাগইন ২.৪ এর জন্য কাজ করে তবে ২.৫ (এবং সমস্তভাবে 3.0.০.০-এর মাধ্যমে) শুরু করে, এটি একটি ত্রুটির কারণ ঘটায়: "প্রস্থান কোড: 1 - জাভাদোক: ত্রুটি - অবৈধ পতাকা: -ডডোক্লিন্ট: কিছুই নেই"। সুতরাং সমাধান ভঙ্গুর হয়।
আকোম

1
mvn release:performসিনট্যাক্স সহ এটি ব্যবহার করার সময় প্রয়োজন mvn release:perform -Darguments="-Dmaven.javadoc.skip=true"
প্যাটস

2

আমি নিশ্চিত যে এটি সাহায্য করে কিনা, তবে এমনকি আমি খুব সাম্প্রতিক সময়ে oozie-4.2.0 সংস্করণে একই একই সমস্যার মুখোমুখি হয়েছি । উপরের উত্তরগুলি পড়ার পরে আমি কমান্ড লাইনের মাধ্যমে সবেমাত্র বিকল্পটি যুক্ত করেছি এবং এটি আমার পক্ষে কাজ করেছে। সুতরাং, শুধু এখানে ভাগ।

আমি জাভা 1.8.0_77 ব্যবহার করছি , জাভা 1.7 দিয়ে চেষ্টা করিনি

বিন / এমকিডিস্ট্রো.শ -ডস্কিপ টেস্টস -ডমেন.জ্যাভাদোক.ওপটস = '- এক্সডোক্লিন্ট: -এইচটিএমএল'


1

অনুপস্থিত @paramএবং @returnট্যাগগুলি উপেক্ষা করার জন্য, missing ডক্লিন্ট গ্রুপটি অক্ষম করা যথেষ্ট । এইভাবে, জাভাডোকটি এখনও উচ্চ স্তরের এবং সিনট্যাক্স সমস্যার জন্য পরীক্ষা করা হবে:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.0.0</version>
        <configuration>
            <doclint>all,-missing</doclint>
        </configuration>
    </plugin>

মনে রাখবেন এটি প্লাগইন সংস্করণ 3.0 বা আরও নতুনর জন্য for


0

আমি পার্টিতে কিছুটা দেরি করে ফেলেছি, তবে আমাকেও জোর করে অনুসন্ধান করতে বাধ্য করা হয়েছিল, এখানেই শেষ হয়েছিল এবং পরে এটি খুঁজে পেয়েছি।

আমার জন্য কী কাজ করে তা এখানে:

export JAVA_TOOL_OPTIONS=-DadditionalJOption=-Xdoclint:none

এবং তারপরে আপনার ম্যাভেন বিল্ড, কোনও লিনাক্স ডিস্ট্রিবিউশন বিল্ড ইত্যাদি শুরু করুন এটি সম্পর্কে দুর্দান্ত জিনিস যে এটির জন্য মাভেন কনফিগারেশন ফাইলগুলির পরিবর্তন প্রয়োজন হয় না - আমি এটি করতে পারিনি কারণ আমার উদ্দেশ্যটি সেন্টোস আরপিএম প্যাকেজগুলির একগুচ্ছ পুনর্নির্মাণের ছিল, তাই করতে হয়েছিল সত্যিই গভীর যেতে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.