2012-03-05 28 views
11

Làm việc trên JDK 1.6.0_16 của tôi, tôi đã tạo các lớp sơ khai từ WSDL bằng Apache CXF 2.5.2, sử dụng jaxb-api 2.2 gần đây nhất. Tôi biết nó có thể có nó sử dụng jaxb-api 2.1, nhưng để tránh các vấn đề tương thích, tôi thà có nó sử dụng phiên bản hiện tại. Kể từ khi tính năng JDK tôi JAXB 2.1, xây dựng không thành công với thông báo sau:Bao gồm JAXB bằng Maven

error at @XmlElementRef(name = "protocol", namespace = "urn:ch.beo.emc", type = JAXBElement.class, required = false) 

Vì vậy, tôi đã cố gắng để làm cho maven bao gồm các api jaxb gần đây nhất và impl sử dụng phụ thuộc sau.

<dependency> 
    <groupId>javax.xml.bind</groupId> 
    <artifactId>jaxb-api</artifactId> 
    <version>2.2.5</version> 
</dependency> 
<dependency> 
    <groupId>com.sun.xml.bind</groupId> 
    <artifactId>jaxb-impl</artifactId> 
    <version>2.2.5</version> 
</dependency> 

Khi hai lọ đã được thêm vào Maven Dependencies trong Eclipse, thông báo lỗi vẫn tồn tại cả trong Eclipse và Maven build.

Làm cách nào để bao gồm các lọ này trong bản dựng Maven của tôi và để chúng được sử dụng cả trong Eclipse và trên hệ thống đích?


PS: Hãy Tìm POM hoàn chỉnh ở đây:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>ch.beo</groupId> 
    <artifactId>emc.front</artifactId> 
    <version>3.1.3-SNAPSHOT</version> 
    <repositories> 
     <repository> 
      <id>jboss</id> 
      <name>JBoss</name> 
      <url>http://repository.jboss.org/maven2/</url> 
     </repository> 
     <repository> 
      <id>freehep</id> 
      <name>Freehep</name> 
      <url>http://java.freehep.org/maven2</url> 
     </repository> 
     <repository> 
      <id>JCurl</id> 
      <url>http://jcurl.berlios.de/m2/repo</url> 
     </repository> 
     <repository> 
      <id>JavaNet</id> 
      <url>http://download.java.net/maven/2/</url> 
     </repository> 
     <repository> 
      <id>djmaven2</id> 
      <url>http://www.fdvs.com.ar/djmaven2</url> 
      <name>DynamicJasper public Repository</name> 
     </repository> 
    </repositories> 
    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 
    <build> 
     <defaultGoal>compile</defaultGoal> 
     <sourceDirectory>src/main/java</sourceDirectory> 
     <testSourceDirectory>src/test/java</testSourceDirectory> 
     <outputDirectory>target/main</outputDirectory> 
     <testOutputDirectory>target/test</testOutputDirectory> 
     <resources> 
      <resource> 
       <targetPath>ch/beo/emc/front/resources</targetPath> 
       <directory>src/main/resources</directory> 
       <excludes> 
        <exclude>src/main/resources/security/jarsign</exclude> 
       </excludes> 
      </resource> 
     </resources> 
     <testResources> 
      <testResource> 
       <targetPath>ch/beo/emc/front/resources</targetPath> 
       <directory>src/test/resources</directory> 
      </testResource> 
      <testResource> 
       <targetPath>ch/beo/emc/front/resources</targetPath> 
       <directory>src/main/resources</directory> 
       <excludes> 
        <exclude>src/main/resources/security/jarsign</exclude> 
       </excludes> 
      </testResource> 
     </testResources> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.codehaus.mojo</groupId> 
       <artifactId>aspectj-maven-plugin</artifactId> 
       <version>1.1</version> 
       <configuration> 
        <complianceLevel>1.6</complianceLevel> 
        <aspectLibraries> 
         <aspectLibrary> 
          <groupId>org.springframework</groupId> 
          <artifactId>spring-aspects</artifactId> 
         </aspectLibrary> 
        </aspectLibraries> 
       </configuration> 
       <executions> 
        <execution> 
         <goals> 
          <goal>compile</goal> 
          <goal>test-compile</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <configuration> 
        <archive> 
         <manifest> 
          <mainClass>ch.beo.emc.front.factory.Front</mainClass> 
          <addClasspath>true</addClasspath> 
          <classpathPrefix>lib</classpathPrefix> 
         </manifest> 
        </archive> 
        <descriptors> 
         <descriptor>assembly.xml</descriptor> 
        </descriptors> 
       </configuration> 
       <executions> 
        <execution> 
         <id>make-assembly</id> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-surefire-plugin</artifactId> 
       <configuration> 
        <includes> 
         <include>ch/beo/emc/front/AllTests.java</include> 
        </includes> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-shade-plugin</artifactId> 
       <version>1.4</version> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>shade</goal> 
         </goals> 
         <configuration> 
          <createDependencyReducedPom>false</createDependencyReducedPom> 
          <transformers> 
           <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> 
            <mainClass>ch.beo.emc.front.factory.Front</mainClass> 
           </transformer> 
           <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
            <resource>META-INF/spring.handlers</resource> 
           </transformer> 
           <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer"> 
            <resource>META-INF/spring.schemas</resource> 
           </transformer> 
          </transformers> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jar-plugin</artifactId> 
       <executions> 
        <execution> 
         <id>sign</id> 
         <phase>package</phase> 
         <goals> 
          <goal>sign</goal> 
         </goals> 
         <configuration> 
          <keystore>src/main/resources/security/jarsign/server.pfx</keystore> 
          <type>pkcs12</type> 
          <alias>beo-it.ch</alias> 
          <storepass>****</storepass> 
          <signedjar>${project.build.directory}/signed/${project.build.finalName}.jar</signedjar> 
          <verify>true</verify> 
         </configuration> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencies> 
     <dependency> 
      <groupId>com.l2fprod</groupId> 
      <artifactId>l2fprod-common-all</artifactId> 
      <version>6.9.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.swixml</groupId> 
      <artifactId>swixml</artifactId> 
      <version>1.5.144</version> 
     </dependency> 
     <dependency> 
      <groupId>net.java.balloontip</groupId> 
      <artifactId>balloontip</artifactId> 
      <version>1.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.swinglabs</groupId> 
      <artifactId>swingx</artifactId> 
      <version>1.6</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>2.5.6.SEC01</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>2.5.6.SEC01</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-aop</artifactId> 
      <version>2.5.6.SEC01</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-aspects</artifactId> 
      <version>2.5.6.SEC01</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-tx</artifactId> 
      <version>2.5.6.SEC01</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-test</artifactId> 
      <version>2.5.6.SEC01</version> 
      <scope>test</scope> 
      <exclusions> 
       <exclusion> 
        <artifactId>junit</artifactId> 
        <groupId>junit</groupId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>jfree</groupId> 
      <artifactId>jfreechart</artifactId> 
      <version>1.0.9</version> 
     </dependency> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.4</version> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>com.sun.java.jnlp</groupId> 
      <artifactId>jnlp</artifactId> 
      <version>6.0</version> 
     </dependency> 
     <dependency> 
      <groupId>com.thoughtworks.xstream</groupId> 
      <artifactId>xstream</artifactId> 
      <version>1.3.1</version> 
     </dependency> 
     <dependency> 
      <groupId>commons-lang</groupId> 
      <artifactId>commons-lang</artifactId> 
      <version>2.5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.jscience</groupId> 
      <artifactId>jsr-275</artifactId> 
      <version>0.8.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi</artifactId> 
      <version>3.7</version> 
     </dependency> 
     <dependency> 
      <groupId>net.sf.jasperreports</groupId> 
      <artifactId>jasperreports</artifactId> 
      <version>3.7.4</version> 
      <exclusions> 
       <exclusion> 
        <groupId>commons-beanutils</groupId> 
        <artifactId>commons-beanutils</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>commons-collections</groupId> 
        <artifactId>commons-collections</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>jfree</groupId> 
        <artifactId>jcommon</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>jfree</groupId> 
        <artifactId>jfreechart</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>xml-apis</groupId> 
        <artifactId>xml-apis</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>bouncycastle</groupId> 
        <artifactId>bcmail-jdk14</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>bouncycastle</groupId> 
        <artifactId>bcprov-jdk14</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>bouncycastle</groupId> 
        <artifactId>bctsp-jdk14</artifactId> 
       </exclusion> 
       <exclusion> 
        <artifactId>jdtcore</artifactId> 
        <groupId>eclipse</groupId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>org.eclipse.jdt.core.compiler</groupId> 
      <artifactId>ecj</artifactId> 
      <version>3.5.1</version> 
     </dependency> 
     <dependency> 
      <groupId>ar.com.fdvs</groupId> 
      <artifactId>DynamicJasper</artifactId> 
      <version>3.1.2</version> 
      <exclusions> 
       <exclusion> 
        <groupId>jasperreports</groupId> 
        <artifactId>jasperreports</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>commons-logging</groupId> 
        <artifactId>commons-logging</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 
     <dependency> 
      <groupId>javax.xml.bind</groupId> 
      <artifactId>jaxb-api</artifactId> 
      <version>2.2.5</version> 
     </dependency> 
     <dependency> 
      <groupId>com.sun.xml.bind</groupId> 
      <artifactId>jaxb-impl</artifactId> 
      <version>2.2.5</version> 
     </dependency> 
    </dependencies> 
</project> 
+0

Tạo tác mục tiêu của bạn là gì? WAR hoặc JAR hoặc EAR? – artbristol

+0

Đó là một JAR, thực sự. Tôi đang sử dụng maven-jar-plugin và maven-shade-plugin để gói tất cả lại với nhau. –

+0

Bạn có thể đăng cấu hình plugin từ POM của mình nơi bạn đang sử dụng CXF không? – nwinkler

Trả lời

12

Tôi chỉ chạy vào vấn đề này với jaxb cũng; lòng tốt, tôi yêu Maven (không). Đây là cách tôi giải quyết vấn đề.

Thêm repo trung ương

 
<repository> 
    <id>central</id> 
    <url>http://repo.maven.apache.org/maven2/</url> 
</repository> 

Sửa đổi các phiên bản của api và impl

 
<dependency> 
    <groupId>javax.xml.bind</groupId> 
    <artifactId>jaxb-api</artifactId> 
    <version>2.2.7-SNAPSHOT</version> 
</dependency> 
<dependency> 
    <groupId>com.sun.xml.bind</groupId> 
    <artifactId>jaxb-impl</artifactId> 
    <version>2.2.5-b10</version> 
</dependency> 
+0

Thật không may, điều đó không giúp ích gì cho công trình xây dựng của tôi. Trên thực tế, phiên bản 2.2.7-SNAPSHOT không có sẵn, mặc dù tôi đã bao gồm kho lưu trữ. –

+1

Đây là một trong những điều tôi ghét về quản lý deps trong maven. Những gì tôi làm khi điều này xảy ra là xem trực tiếp tại kho lưu trữ trong trình duyệt để tìm phiên bản hiện có sẵn nếu được phép hoặc sử dụng http://search.maven.org/#search%7Cga%7C1%7Cjaxb-api –

+0

Từ những gì tôi xem trong tìm kiếm, 2.2.6 hiện có sẵn –

1

Thêm

<dependency> 
    <groupId>javax.xml.bind</groupId> 
    <artifactId>jaxb-api</artifactId> 
    <version>2.2.12</version> 
</dependency> 
<dependency> 
    <groupId>com.sun.xml.bind</groupId> 
    <artifactId>jaxb-impl</artifactId> 
    <version>2.2.11</version> 
</dependency> 

<repositories> 
    <repository> 
     <id>central</id> 
     <url>http://repo.maven.apache.org/maven2/</url> 
    </repository> 
</repositories> 
Các vấn đề liên quan