それで、私はしばらくそれを理解しようとしていました。JAXB アノテーションを含む Java クラスがあります。
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Book {
private String title;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
schemagen
その後、次のように実行できます。
schemagen -d d:\Temp Book.java
XML スキーマが生成されます: schema1.xsd
. 戻りコードは 0 です (windows ( echo %ERRORLEVEL%
) と linux ( ) の両方を試しましecho $?
た)。
ここで、Jackson アノテーションをこのクラスに追加する必要があるため、単一の JSON 属性を追加します。
import javax.xml.bind.annotation.XmlRootElement;
import com.fasterxml.jackson.annotation.JsonProperty;
@XmlRootElement
public class Book {
@JsonProperty("title")
private String title;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
残念ながら、schemagen を実行すると成功したように見えます (スキーマ ファイルが生成されます) が、リターン コードは 1 (Linux と Windows の両方で) であり、gmake が失敗する原因となるので問題があります。
悲しいことschemagen
に、エラー メッセージは出力されません。しかし、jackson jar が見つからないのではないかと疑っているので、jackson-annotation jar (jackson-core と jackson-databind の依存関係を含む) を共通の D:\Temp の場所にコピーし、次のように実行schemagen
します。
schemagen -cp d:\Temp -d d:\Temp Book.java
残念ながら、次のように実行すると同じ結果になります。
schemagen -cp d:\Temp\* -d d:\Temp Book.java
また、コンソールに単一の出力を取得null
し (JAXB 担当者はここで冗長性を強調しました)、リターン コードは -1 です。
Jackson アノテーションを使用して schemagen を正常に実行する方法 (戻りコード 0) は? 助言がありますか?