質問

XJCタスク定義を備えたANT Build.xmlファイルがあります:

<taskdef name="xjc" classname="com.sun.tools.xjc.XJCTask">
  <classpath>
    <fileset dir="jaxb" includes="*.jar" />
  </classpath>
</taskdef>

jaxb dirは、内部内にxjctaskクラスを備えたJaxb-xjc.jarをcotnains cotnains cotnains cotnains。

次に、いくつかのターゲットでXJCタスクを呼び出します。

<target name="mytarget">
 <xjc target="src" package="com.p1.Person" header="false">
   <schema dir="src/com/p1" includes="Person.xsd"/>
 </xjc>
</target>

Intellijのアイデアは、XJC呼び出しの構造/スキーマを認識せず、すべての属性(ターゲット、パッケージ、ヘッダー)および赤の要素(スキーマ)を含む強調表示を強調します。

アリのオプションを選択し、Jaxb-XJC.jarを追加のクラスパスリストに追加する場合、これは役に立ちません。バンドルアリ1.8.2を使用します

悪いことは、アイデアでそれをコンパイルするとき、私は多くの関連するエラーを取得することですが、ビルドスクリプトを実行すると、すべてが正常に機能することです。これらのエラーを抑制したいです。

何か案は?

役に立ちましたか?

解決

答えは、Idea Issue Trackerの関連するバグのこのコメントから来ています。http://youtrack.jetbrains.net/issue/idea-11248#comment = 27-57354

XJCtaskのIDEAの問題については、TaskDefでXJC2Taskを使用してください。

XJC2Taskのソースを見ると、セッターが露出しているため、アイデアがそれらを解決できるようになりました。http://grepcode.com/file/repo1.maven.org/maven2/com.sun.xml.bind/jaxb-xjc/2.1.13/com/sun/tools/xjc/xjc2task.java#xjc2task. 28java.lang.String%29

ただし、XJCtaskは、その場でJAXB1またはJAXB2に動的に委任するクラスにすぎないため、TaskDefで定義しているクラスにはセッターがないため、これらのプロパティを解決することはできません。http://grepcode.com/file/repo1.maven.org/maven2/com.sun.xml.bind/jaxb-xjc/2.1.13/com/sun/tools/xjc/xjctask.java#xjctask. 28%29

編集:基本的にjaxb2では、xjctaskは実際にはタスクを含んでいません - 実際のタスクxjc2taskに委任します。

ソースへのより良いリンクは次のとおりです。

jaxb 1のxjctask 1http://java.net/projects/jaxb/sources/version1/content/trunk/jaxb-ri/xjc/src/com/sun/tools/xjc/xjctask.java?rev=197

jaxb2のxjctaskhttp://java.net/projects/jaxb/sources/version2/content/trunk/jaxb-ri/xjc/facade/com/sun/tools/xjc/xjctask.java?rev=3863

jaxb2のxjc2taskhttp://java.net/projects/jaxb/sources/version2/content/trunk/jaxb-ri/xjc/src/com/sun/tools/xjc/xjc2task.java?rev=3863

jaxb-xjc-ri-2.x-xx.jarを見ると、「1/com/sun/tools/xjc/」というパッケージが含まれていることがわかります。

これは、バージョンを1.0に設定するとANTタスクを実行する場合、JaxB2のXJCtaskから呼び出されるものです。当時のV1からV2への移行を容易にするために入れられたと思います。

XJC2Taskは、V2を使用している場合に呼び出されます。

現実的には、1.0に設定するつもりはないため、XJC2Taskを直接呼び出すだけです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top