无法从 XSD 生成类

Esh*_*thu 5 java jaxb xjc maven

这是我用来生成类的 pom.xml。我尝试通过 Maven 构建通过提供目标作为包来生成。我也尝试使用 mvn clean install ,我在控制台中没有看到任何错误,但是,“target/ generated-sources/jaxb”中没有生成任何类

http://maven.apache.org/xsd/maven-4.0.0.xsd">4.0.0

<groupId>com.login.app</groupId>
<artifactId>Login</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

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

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

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


<build>
    <pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>

                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>jaxb2-maven-plugin</artifactId>
            <version>1.5</version>
            <executions>
                <execution>
                    <id>xjc</id>
                    <goals>
                        <goal>xjc</goal>
                    </goals>
                </execution>
            </executions>
            <configuration>

                <outputDirectory>target/generated-sources/jaxb</outputDirectory>
                <packageName>com.login.app</packageName>
                <schemaDirectory>src/main</schemaDirectory>
                <schemaFiles>proto.xsd</schemaFiles>

            </configuration>
        </plugin>

    </plugins>
</build>
Run Code Online (Sandbox Code Playgroud)

这是我一直在尝试生成 java 类的示例 XSD 文件,如果需要对 xsd 文件进行任何更改,请告诉我。

<xs:element name="UserInfo">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="firsName" type="xs:string" />
            <xs:element name="middleName" type="xs:string" />
            <xs:element name="lastName" type="xs:string" />
            <xs:element name="dob" type="xs:string" />
            <xs:element name="ssn" type="xs:string" />
            <xs:element name="emailId" type="xs:string" />
            <xs:element name="userId" type="xs:string" />
            <xs:element name="password1" type="xs:string" />
            <xs:element name="password2" type="xs:string" />
            <xs:element name="Address">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="addressline1" type="xs:string" />
                        <xs:element name="addressline2" type="xs:string" />
                        <xs:element name="zipCode" type="xs:int" />
                        <xs:element name="street" type="xs:string" />
                        <xs:element name="apt" type="xs:string" />
                        <xs:element name="city" type="xs:string" />
                        <xs:element name="state" type="xs:string" />
                        <xs:element name="country" type="xs:string" />
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:element>
Run Code Online (Sandbox Code Playgroud)

Rao*_*Rao 3

这是创建的初始基本目录结构。

\n\n
\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80src\n    \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80main\n    \xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80resources\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80test\n
Run Code Online (Sandbox Code Playgroud)\n\n

proto.xsd被放置在资源下。

\n\n

xs上面的模式中有前缀,没有命名空间的声明。因此将其更改如下:
\n proto.xsd

\n\n
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">\n<xs:element name="UserInfo" >\n    <xs:complexType>\n        <xs:sequence>\n            <xs:element name="firsName" type="xs:string" />\n            <xs:element name="middleName" type="xs:string" />\n            <xs:element name="lastName" type="xs:string" />\n            <xs:element name="dob" type="xs:string" />\n            <xs:element name="ssn" type="xs:string" />\n            <xs:element name="emailId" type="xs:string" />\n            <xs:element name="userId" type="xs:string" />\n            <xs:element name="password1" type="xs:string" />\n            <xs:element name="password2" type="xs:string" />\n            <xs:element name="Address">\n                <xs:complexType>\n                    <xs:sequence>\n                        <xs:element name="addressline1" type="xs:string" />\n                        <xs:element name="addressline2" type="xs:string" />\n                        <xs:element name="zipCode" type="xs:int" />\n                        <xs:element name="street" type="xs:string" />\n                        <xs:element name="apt" type="xs:string" />\n                        <xs:element name="city" type="xs:string" />\n                        <xs:element name="state" type="xs:string" />\n                        <xs:element name="country" type="xs:string" />\n                    </xs:sequence>\n                </xs:complexType>\n            </xs:element>\n        </xs:sequence>\n    </xs:complexType>\n</xs:element>\n</xs:schema>\n
Run Code Online (Sandbox Code Playgroud)\n\n

这是pom.xml文件:

\n\n
<project xmlns="http://maven.apache.org/POM/4.0.0"   \nxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  \n  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0   \nhttp://maven.apache.org/xsd/maven-4.0.0.xsd">  \n\n  <modelVersion>4.0.0</modelVersion>  \n  <groupId>com.login.app</groupId>\n  <artifactId>Login</artifactId>\n  <version>0.0.1-SNAPSHOT</version>\n  <packaging>jar</packaging>\n\n  <name>Login</name>\n  <url>http://maven.apache.org</url>\n\n  <properties>\n      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>\n  </properties>\n\n  <dependencies>\n      <dependency>\n          <groupId>junit</groupId>\n          <artifactId>junit</artifactId>\n          <version>3.8.1</version>\n          <scope>test</scope>\n      </dependency>\n  </dependencies>\n\n  <build>\n      <pluginManagement>\n          <plugins>\n              <plugin>\n                  <groupId>org.apache.maven.plugins</groupId>\n                  <artifactId>maven-compiler-plugin</artifactId>\n\n                  <configuration>\n                      <source>1.8</source>\n                      <target>1.8</target>\n                  </configuration>\n              </plugin>\n          </plugins>\n      </pluginManagement>\n      <plugins>\n          <plugin>\n              <groupId>org.codehaus.mojo</groupId>\n              <artifactId>jaxb2-maven-plugin</artifactId>\n              <version>1.5</version>\n              <executions>\n                  <execution>\n                      <id>xjc</id>\n                      <goals>\n                          <goal>xjc</goal>\n                      </goals>\n                  </execution>\n              </executions>\n              <configuration>\n                  <outputDirectory>target/generated-sources/jaxb</outputDirectory>\n                  <packageName>com.login.app</packageName>\n                  <schemaDirectory>src/main/resources</schemaDirectory>\n                  <schemaFiles>proto.xsd</schemaFiles>\n                </configuration>\n          </plugin>\n\n      </plugins>\n</build>\n\n</project>\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果您注意到上面的内容,schemaDirectory当 xsd 文件放置在那里时,值会相应地更改。

\n\n

现在,运行以下 Maven 命令:

\n\n
mvn clean install\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出:

\n\n
[INFO] Scanning for projects...\n[INFO]\n[INFO] ------------------------------------------------------------------------\n[INFO] Building Login 0.0.1-SNAPSHOT\n[INFO] ------------------------------------------------------------------------\n[INFO]\n[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ Login ---\n[INFO]\n[INFO] --- jaxb2-maven-plugin:1.5:xjc (xjc) @ Login ---\n[INFO] Generating source...\n[INFO] parsing a schema...\n[INFO] compiling a schema...\n[INFO] com\\login\\app\\ObjectFactory.java\n[INFO] com\\login\\app\\UserInfo.java\n[INFO]\n[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Login ---\n[INFO] Using \'UTF-8\' encoding to copy filtered resources.\n[INFO] Copying 1 resource\n[INFO]\n[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ Login ---\n[INFO] Changes detected - recompiling the module!\n[INFO] Compiling 2 source files to D:\\workspace\\mavenexamples\\maven-generate-classes\\target\\classes\n[INFO]\n[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ Login ---\n[INFO] Using \'UTF-8\' encoding to copy filtered resources.\n[INFO] skip non existing resourceDirectory D:\\workspace\\mavenexamples\\maven-generate-classes\\src\\test\\resources\n[INFO]\n[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ Login ---\n[INFO] No sources to compile\n[INFO]\n[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ Login ---\n[INFO] No tests to run.\n[INFO]\n[INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ Login ---\n[INFO] Building jar: D:\\workspace\\mavenexamples\\maven-generate-classes\\target\\Login-0.0.1-SNAPSHOT.jar\n[INFO]\n[INFO] --- maven-install-plugin:2.4:install (default-install) @ Login ---\n[INFO] Installing D:\\workspace\\mavenexamples\\maven-generate-classes\\target\\Login-0.0.1-SNAPSHOT.jar to C:\\Users\\apps\\.m2\\repository\\com\\login\\app\\Login\\0.0.1-SNAPSHOT\\Login-0.0.1-SNAPSHOT.jar\n[INFO] Installing D:\\workspace\\mavenexamples\\maven-generate-classes\\pom.xml to C:\\Users\\apps\\.m2\\repository\\com\\login\\app\\Login\\0.0.1-SNAPSHOT\\Login-0.0.1-SNAPSHOT.pom\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time: 3.241 s\n[INFO] Finished at: 2017-03-27T09:47:57+05:30\n[INFO] Final Memory: 17M/137M\n[INFO] ------------------------------------------------------------------------\n
Run Code Online (Sandbox Code Playgroud)\n\n

还可以看到目录下的文件target

\n\n
\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80classes\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80com\n\xe2\x94\x82       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80login\n\xe2\x94\x82           \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80app\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80generated-sources\n\xe2\x94\x82   \xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80annotations\n\xe2\x94\x82   \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80jaxb\n\xe2\x94\x82       \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80com\n\xe2\x94\x82           \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80login\n\xe2\x94\x82               \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80app\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80jaxb2\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80maven-archiver\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80maven-status\n    \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80maven-compiler-plugin\n        \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80compile\n            \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80default-compile\n
Run Code Online (Sandbox Code Playgroud)\n