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)
这是创建的初始基本目录结构。
\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\nRun Code Online (Sandbox Code Playgroud)\n\nproto.xsd被放置在资源下。
xs上面的模式中有前缀,没有命名空间的声明。因此将其更改如下:
\n proto.xsd
<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>\nRun 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>\nRun Code Online (Sandbox Code Playgroud)\n\n如果您注意到上面的内容,schemaDirectory当 xsd 文件放置在那里时,值会相应地更改。
现在,运行以下 Maven 命令:
\n\nmvn clean install\nRun 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] ------------------------------------------------------------------------\nRun Code Online (Sandbox Code Playgroud)\n\n还可以看到目录下的文件target:
\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\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
10003 次 |
| 最近记录: |